gpt4 book ai didi

C++ |使用 setTo 更改 cv::mat 中的颜色

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:22 24 4
gpt4 key购买 nike

我有一个包含 vec3b 值的 cv::Mat 文件。这些值是来自图像的颜色。我想更改该图像中的一些颜色。

我知道用于正常矩阵操作的 setTo() 函数,但如何将它用于我的 Mat 文件?

我试过这样的:

 image = image.setto(Vec3b(0,0,0), image == Vec3b(255,0,0))

谢谢!

最佳答案

给定一张图片 image,我们想要找到 image 中等于 Scalar(255,0,0) 的所有像素然后将这些像素设置为 Scalar(0,0,0)

  • 首先我们需要获取mask,这样在mask中的某个位置设置为255,如果在image中对应的位置等于 Scalar(255,0,0),否则设置为 0。这可以通过 inRange() 实现功能。

    Mat mask;
    inRange(image, Scalar(255,0,0), Scalar(255,0,0), mask);
  • 现在将 setTo() 函数应用于 image

    image.setTo(Scalar(0,0,0), mask);

关于C++ |使用 setTo 更改 cv::mat 中的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20981379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com