如何编写查找表来映射像素强度(OpenCV)

时间:2015-04-11 03:09:55

标签: c++ opencv lookup-tables

我试图平滑一些轮廓边缘,所以它们不是那么锯齿状。到目前为止,我已经在我的轮廓上应用了cv::GuassianBlur()。我发现了一个有趣的stackoverflow answer可能有助于使用带有LUT的查找表来排序我的模糊轮廓的“阈值”。

但是我不确定如何正确编写查找表。我找不到任何明确的例子。任何帮助赞赏。谢谢

1 个答案:

答案 0 :(得分:2)

您只需传递一个包含256个元素的std::vector<char>作为lut参数。此向量中具有索引i的元素将指定值为i的所有像素的输出值。

例如,如果你想要将图像阈值设置为80(高于或等于80的所有内容都变成完全白色而其他所有内容都变为全黑),你可以写下这样的内容:

std::vector<char> lut(256);
for (int i = 0; i < 256; ++i) {
    lut[i] = i >= 80 ? 255 : 0;
}

cv::LUT(src, lut, dst);