2012-06-13 17 views
5

Mam kilka zdjęć obiektów w Mat wszystko o tych samych wymiarach Chciałbym utworzyć jeden bix cv::Mat obiekt utrzymać je wszystkieŁączy Mat w OpenCV

więc wymiar nowej matrycy jest: widthNew = widthOld x liczba macierzy, wysokość pozostaje niezmieniona.

Uważam, że taka kopia może być wykonane przy użyciu:

void cvCopy(const CvArr* src, CvArr* dst, const CvArr* mask=NULL) 

ale potem, jak może być zdefiniowana maska ​​trzy razy za trzy matryce ?.

Pozdrawiam, Moataz

+0

Należy pamiętać, że maksymalny rozmiar obrazu IplImage wynosi około 4000 * 4000. Może być również konieczne zmniejszenie rozdzielczości obrazu wejściowego. – jlengrand

+0

Maska jest opcjonalna, nie trzeba jej definiować. –

+0

w porządku. Zaznaczę to, thnx –

Odpowiedz

1

Prawdopodobnie chcesz wziąć spojrzeć na the source code of cvShowManyImages(), która to funkcja, która trwa kilka zdjęć jako wejście i łączy je w jeden 3-kanałowy wyświetlanego obrazu:

Metoda stosowana jest ustawić ROI pojedynczego dużego obrazu, a następnie zmienić rozmiar obrazu i skopiować obrazy wejściowe na pojedynczy duży obraz.

Jeśli utworzysz obraz docelowy wystarczająco duży, aby pomieścić inne obrazy, nie będzie potrzeby zmiany ich rozmiaru.

Jeśli chcesz wiedzieć, jak przekonwertować między IplImage < ->cv::Mat, sprawdź this thread.

+0

brzmi interesująco, thnx. Myślę, że skopiuję pomysł, aby zaimplementować coś podobnego, używając czystego cv :: Mat zamiast IpImage –

2

Myślę, że istnieje prosty sposób na zrobienie tego. OpenCV ma nieudokumentowane metody o nazwie hconcat() i vconcat(). Pierwsza z nich to pozioma konkatenacja, a druga pionowa.

Można ich używać w ten sposób:

Mat A, B; 
... //In this part you initialize the Mat A and Mat B. 

Mat H, V; //These are the destination matrices 
hconcat(A, B, H); 
vconcat(A, B, V); 

Mam nadzieję, że to może pomóc.

+0

Miejsce docelowe może być takie samo jak jedno ze źródeł, więc 'vconcat (out, out1, out); vconcat (out, out2, out); 'działa dobrze dla mnie w kontekście wielowątkowym (do łączenia wyników z poszczególnych wątków). – Izaan