我们如何从图像中删除一种纯色?

Shw*_*har 4 opencv

使用cvSet方法,我们可以轻松地用纯色填充图像.有没有什么方法可以帮助你从你的图像中删除一些颜色(例如,我有一个森林的图像.基本上它将有很多绿色组件,叶子等.我可以删除绿色保持其他一切相同.)

Dav*_*ati 9

    char* inputPath = "TEST.png";

    Mat src = imread(inputPath);
    Mat BGRChannels[3];
    split(src,BGRChannels); // split the BGR channesl
    BGRChannels[1]=Mat::zeros(src.rows,src.cols,CV_8UC1);// removing Green channel
    merge(BGRChannels,3,src); // pack the image 
    namedWindow("B0R",1);
    imshow("B0R",src);
    waitKey(0);
Run Code Online (Sandbox Code Playgroud)

结果如下:
主要形象

删除了绿色通道图像

  • 有更简单的方法:`src = src - Scalar(0,255,0);` (5认同)
  • @sturkmen,是的,这也取消了8位平面RGB图像中的绿色平面. (3认同)