2012-04-22 10 views
5

Przeszedłem dużo czasu, szukając sposobu konwersji z cv :: Mat lub CvMat na CvArr, ale bez zysku, pomóżcie mi w tym, dzięki.Jak przekonwertować z cv :: Mat do CvArr?

+1

CvArr to parametr "metoda" służący do przekazywania wielu typów danych obrazu. To nie jest typ, ale metatype. Więc cokolwiek robisz, to cvMat, czego potrzebujesz. – William

Odpowiedz

1

Czy na pewno chcesz to przekonwertować? czasami jest odpowiednia funkcja, która wykorzystuje to, co masz. Na przykład cvMorphologyEx używa CvArr, ale morphologyEx używa cv::Mat.

0

konwertować pierwszy obraz przy użyciu następujących:

IplImage* oldstyleimg = &matimg.operator IplImage() 

I don t pamiętam, czy to tylko utworzyć nagłówek dla obrazu albo tworzy kopię

4

Kiedy muszę zrobić, że ja po prostu użyć :

IplImage tmp = image; 

Z obrazem zmienną Mata.

3
Mat img = imread("C:\MyPic.jpg",CV_LOAD_IMAGE_GRAYSCALE); 
IplImage tmp=img; 
cvErode(&tmp, &tmp, 0, 2); 
Mat laser=&tmp; 
    imshow("Eroded",laser); 

konwertowane cv::Mat do CvArr w ten sposób. Zamiast używać tmp bezpośrednio użyj &tmp.