Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: PotatoJesus 16. 04. 2013, 17:11:54

Název: javaCV funkce cvDecodeImage vrací null
Přispěvatel: PotatoJesus 16. 04. 2013, 17:11:54
Zdravím,
řeším takový problém, funkce cvDecodeImage mi namísto původního obrázku vrací null, netušim co dělám blbě. Podle tohodle http://stackoverflow.com/questions/9252902/load-image-opencv-javacv-from-byte-not-a-file by ta decode část mohla být dobře, se zbytkem si nejsem jistej :-\
Kód: [Vybrat]
//encode část
CvMat m=cvEncodeImage(".jpg", img);
ByteBuffer bb=m.asIplImage().getByteBuffer();
byte [] poleZBb=new byte[bb.remaining()];
                                bb.get(poleZBb);
//decode část
CvMat mat=cvMat(1,poleZBb.length,CV_8UC1,new BytePointer(pole));
IplImage image=cvDecodeImage(mat);
canvas.showImage(image);

Název: Re:javaCV funkce cvDecodeImage vrací null
Přispěvatel: PotatoJesus 16. 04. 2013, 23:02:01
Problém vyřešen, netuším vůbec ale jak! Převod na pole jsem dal do samostatných public funkcí ve stejném objektu a najednou to začalo fungovat. Nevim, najděte pět rozdílů  :)

Kód: [Vybrat]
public byte [] encode(IplImage img)
{
IplImage i=cvEncodeImage(".jpg", img).asIplImage();
return getPole2(i);
}

public IplImage decode(byte [] pole)
{
return cvDecodeImage(cvMat(1, pole.length, CV_8UC1, new BytePointer(pole)));
}

public byte [] getPole2(IplImage img)
{
ByteBuffer bb=img.getByteBuffer();
byte [] rtrn=new byte[bb.remaining()];
bb.get(rtrn);
return rtrn;
}


.
.
.
.
.
.
.
Nebudu lhát, trochu mě to děsí  ???