2014-09-26 47 views
2

什么是垫的一个信道设定为一个值,同时使其他通道的电流值的最佳方式?的OpenCV设置一个信道为一个值C++

例如,如果我有一个4通道矩阵,出于某种原因,我需要将其中一个通道设置为某个值,但其他通道保留其当前值,哪种操作最好?

谢谢!

回答

4

伪代码,您可以编写一个函数,输入的图像是这样的:

  1. 分割图像到通道
  2. 感兴趣
  3. 修改通道再次将它们合并

为例如

Mat img(5,5,CV_64FC3); // declare three channels image 
Mat ch1, ch2, ch3; // declare three matrices 
// "channels" is a vector of 3 Mat arrays: 
vector<Mat> channels(3); 
// split img: 
split(img, channels); 
// get the channels (follow BGR order in OpenCV) 
ch1 = channels[0]; 
ch2 = channels[1]; 
ch3 = channels[2]; 
// modify channel// then merge 

merge(channels, img); 
+0

咕d样品THX! – 2017-09-20 08:10:42