【发布时间】:2015-06-28 06:49:27
【问题描述】:
我使用 houghLines 变换来检测图像中的线条,并使用 cv::line() 函数在单独的 Mat 图像上绘制检测到的线条。 请注意,由 houghLinesP 检测到的线条通常相互重叠且数量较多。 (即使图像中有 1 行,它也会检测相邻行的数量)
for (size_t i = 0; i < lines.size(); i++)
{
Vec4i l = lines[i];
line(src, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 255, 0), 10, CV_AA);
}
我想用没有任何透明度的纯绿色绘制线条。但在生成的图像中,我注意到边缘的一些线条是透明的。 (或线条的边界模糊)以下是我生成的图像的一部分。
我想避免这种情况。我希望线条有锋利的边缘,并且不应该有任何透明度。怎么做?
【问题讨论】:
-
根本没有透明度。您正在使用 CV_AA 标志进行绘图,因此它会尝试进行抗锯齿。如果您不喜欢结果,请跳过 CV_AA 标志。
-
@berak 我删除了那个标志。但结果和以前一样。
-
您在观看图像之前保存为 jpeg 吗?尝试无损压缩方法(例如 png)。
-
是的,我保存在 jpeg 中。这就是问题所在。当我以 .png 格式保存图像时,问题解决了。谢谢
标签: c++ opencv image-processing transparency alpha