1. 程式人生 > >opencv視覺學習溫習(二)

opencv視覺學習溫習(二)

一:分離顏色通道

split函式,將一個多通道陣列分離成幾個單通道陣列。函式原型:

C++: void split(const Mat& src, Mat*mvbegin);
C++: void split(InputArray m,OutputArrayOfArrays mv);
  • 第一個引數,InputArray型別的m或者const Mat&型別的src,填我們需要進行分離的多通道陣列。
  • 第二個引數,OutputArrayOfArrays型別的mv,填函式的輸出陣列或者輸出的vector容器。

用法:

split(srcImage, channels);//srcImage為讀取的影象

merge函式,merge()函式的功能是split()函式的逆向操作,將多個數組組合合併成一個多通道的陣列。函式原型:

C++: void merge(const Mat* mv, size_tcount, OutputArray dst)
C++: void merge(InputArrayOfArrays mv,OutputArray dst)
  • 第一個引數,mv,填需要被合併的輸入矩陣或vector容器的陣列,這個mv引數中所有的矩陣必須有著一樣的尺寸和深度。
  • 第二個引數,count,當mv為一個空白的C陣列時,代表輸入矩陣的個數,這個引數顯然必須大於1.
  • 第三個引數,dst,即輸出矩陣,和mv[0]擁有一樣的尺寸和深度,並且通道的數量是矩陣陣列中的通道的總數。

用法:

merge(channels, srcImage);