c++ - 对 RGB 图像执行阈值操作

标签 c++ image image-processing intel-ipp

我需要对 RGB 图像执行阈值操作。我打算做的阈值处理应该如下所示。

如果一个像素的灰度等效值(按 0.299 * R' + 0.587 * G' + 0.114 * B' 计算)为 Y,则输出图像将是:

P = Threshold_color, if Y < threshold_value
  = (R,G,B), Original value

,其中Threshold_color为RGB颜色值,

我想使用英特尔 IPP 库执行此操作。在那里我发现很少有与 thresholding of images 相关的 API . (ippiThreshold_LTVal_8u_C3R)

但这些方法似乎一次只能处理一个数据点。但我想要做的阈值取决于 3 个不同值(R、G、B)的组合。 有没有办法通过 IPP 库实现这一点?

最佳答案

建议的方法:

  1. 将图片复制成灰度图
  2. 使用阈值创建二进制掩码 0/1(与灰度图像大小相同)
  3. 将此蒙版与您要生成叠加层的替换颜色相乘
  4. 将叠加层应用于原始图像。

请注意,您在这里生成了不同类型的图像:首先是灰度图像,然后是黑白图像,最后是彩色图像(尽管在第 3 步中它是单色图像)

关于c++ - 对 RGB 图像执行阈值操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47811355/

相关文章:

c++ - 如何使用 weak_ptr 构造一个包含对父对象的引用的对象?

c++ - 找到集合并集的最快方法

css - 设置 xlink :href attribute of an svg <image> element with CSS

c# - .NET 中最快的图像大小调整

matlab - 如何提高Matlab中SVM训练和分类的准确性?

c++ - 将 C++/CLI 转换为 C++ 时的陷阱

c++ - std::make_from_tuple 在没有构造函数的情况下无法编译

asp.net-mvc - ASP.NET MVC 4 图像上传遇到问题

image - 我们能不能通过 Canvas 得到真实的图片大小呢?

Python OpenCV : Rubik's cube solver color extraction