我试图平滑一些轮廓边缘,所以它们不是那么锯齿状。到目前为止,我已经在我的轮廓上应用了cv::GuassianBlur()
。我发现了一个有趣的stackoverflow answer可能有助于使用带有LUT
的查找表来排序我的模糊轮廓的“阈值”。
但是我不确定如何正确编写查找表。我找不到任何明确的例子。任何帮助赞赏。谢谢
答案 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);