我想从像素化图像中检测颜色,然后将特定像素变成不同的颜色?
例如: 像素,B / G / R< 150重新着色为白色。和具有B / G / R的像素> 150到黑色或留下来。
有可能吗?如果有,怎么样?我需要指导。
答案 0 :(得分:1)
答案是将图像转换为HSV色彩空间!
您可以使用inRange功能从图像中屏蔽蓝色,如下所示:
Mat mInput_Bgr,mInput_HSV,mBlueMask,mDestination;
mInput_Bgr= imread(FileName_S,1);
imshow("mInput_Bgr",mInput_Bgr);
cvtColor(mInput_Bgr,mInput_HSV,COLOR_BGR2HSV);
inRange(mInput_HSV,Scalar(104,200,0),Scalar(132,255,255),mBlueMask);// You can play with all the values to choose your desired color
imshow("mBlueMask",mBlueMask);
mInput_Bgr.setTo(Scalar(255,255,255),mBlueMask);// You can set what ever Color Value
imshow("Corrected_mInput_Bgr",mInput_Bgr);