我有一个带有vec3b值的cv :: Mat文件.这些值是图像中的颜色.我想改变那张图片中的一些颜色.
我知道正常矩阵操作的setTo()函数,但我如何将它用于我的Mat文件?
我试过这样的事情:
image = image.setto(Vec3b(0,0,0), image == Vec3b(255,0,0))
Run Code Online (Sandbox Code Playgroud)
谢谢!
给定图像image,我们想要找到image等于的所有像素Scalar(255,0,0),然后将这些像素设置为Scalar(0,0,0).
首先我们需要获得mask,mask如果相应的位置image等于Scalar(255,0,0),则将位置设置为255 ,否则将其设置为0.这可以通过inRange()函数来实现.
Mat mask;
inRange(image, Scalar(255,0,0), Scalar(255,0,0), mask);
Run Code Online (Sandbox Code Playgroud)现在应用setTo()函数image.
image.setTo(Scalar(0,0,0), mask);
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
8255 次 |
| 最近记录: |