Opencv. A kép környezet növelése.

 ( emberk | 2010. február 25., csütörtök - 15:25 )

Sziasztok a lenti kódrészlet elvileg a beadott komplex tömböt bemásolja egy nagyobb tömbbe úgy hogy a körülötte 0-k lesznek. de ezt a hibaüzenetet kapom:

OpenCV Error: Assertion failed (src.depth() == dst.depth() && src.size() == dst.size()) in cvCopy, file /build/src/OpenCV-2.0.0/src/cxcore/cxcopy.cpp, line 466
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

Ami szerintem nem logikus (vagy én rontok el valamit), mert bemeneti tömb, az ugyanakkora, mint a zerobigpic-ben képezett oldpic_area subrect.

void MainWindow::cvLupeDFT(CvArr * src_arr, CvArr * dst_arr , int x_size, int y_size)
{
CvMat imat, omat;
CvMat *zerobigpic, *oldpic_area;
zerobigpic = cvCreateMat( x_size, y_size, cvGetElemType(src_arr));
cvGetSubRect( zerobigpic, &imat, cvRect(0,0, x_size, y_size));
CvSize new_size = cvSize(x_size,y_size);
CvSize old_size = cvGetSize(src_arr);

zerobigpic=cvCreateMat(new_size.height, new_size.width, cvGetElemType(src_arr));
cvZero(zerobigpic);
oldpic_area=cvGetSubRect(zerobigpic, &omat, cvRect(0,0,old_size.height+1, old_size.width+1));
cvCopy(oldpic_area,src_arr,0);
//cvCopy(zerobigpic,dst_arr,0);

}

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Egy UP.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Eheh, olvasd el a .sig-edet, aztán a kódot mégegyszer:)

(hint: rosszul adod meg a cvRect max koordinátáit az oldpic_area-nál:))

Nem jó akkor sem. Igen látom, fölcseréletam a szélesség/magaság-ot, de a kép négyzet, így ez nem okozhatja a gondot (attól még hiba, később szívhattam volna ezzel is, köszi).

UI: Közben rájöttem mi a gáz. Az src_area aott vissza rossz értéket előtte néztem be valamit.

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

Arra próbáltam utalni, hogy a (0, 0, width+1, height+1) -es téglalap mérete (width+2) x (height+2)
emellett az első cvRect mérete se biztos, hogy jó így.