【发布时间】:2015-11-27 16:12:28
【问题描述】:
我想在cv::Mat 图像中检测一个特定的像素值(假设是无符号 8 位 1 通道图像中的 128),并将所有像素的值替换为另一个值(替换每个 128 120)。有没有有效的方法来做到这一点?还是应该逐个像素地进行搜索和断言操作?
我开始编码,但无法完成。这是我的代码的一部分:
cv::Mat source;
unsigned oldValue = 128;
unsigned newValue = 120;
cv::Mat temp = (source == oldValue);
【问题讨论】:
-
我不明白如何在不浏览像素的情况下检查特定值。只有
O(N)复杂度。 -
看看 cv::LUT,在本教程中给出:docs.opencv.org/doc/tutorials/core/how_to_scan_images/… 您将创建一个查找表,其中 table[i] == i 除了 table[128] == 120
标签: c++ opencv replace colors pixel