Image 如何通过图像处理检测两条垂直线?
我正在尝试使用一些图像处理方法检测附加图像中显示的两条垂直线。这条线的对比度很低 该位置显示在第一幅带有黄色箭头的图像中。 原始图像也被附上 我尝试在本地窗口使用自适应阈值和使用最大值和最小值的正常阈值。但是我看不出这些线 你知道如何在图像处理中检测两条垂直线吗Image 如何通过图像处理检测两条垂直线?,image,opencv,image-processing,Image,Opencv,Image Processing,我正在尝试使用一些图像处理方法检测附加图像中显示的两条垂直线。这条线的对比度很低 该位置显示在第一幅带有黄色箭头的图像中。 原始图像也被附上 我尝试在本地窗口使用自适应阈值和使用最大值和最小值的正常阈值。但是我看不出这些线 你知道如何在图像处理中检测两条垂直线吗 当明亮像素的对比度较低时,有一些技巧。有一种阈值方法——大津阈值法,可以用来检测直方图的亮面。之后,您可以将直方图的该部分规格化为0255,并将0设置为较暗的像素,如下代码所示: cv::Mat img = cv::imread("E:
当明亮像素的对比度较低时,有一些技巧。有一种阈值方法——大津阈值法,可以用来检测直方图的亮面。之后,您可以将直方图的该部分规格化为0255,并将0设置为较暗的像素,如下代码所示:
cv::Mat img = cv::imread("E:\\Workspace\\KS\\excercise\\sjB8q.jpg", 0);
cv::Mat work;
for (int i = 0; i < 4; i++) // number of iterations has to be adjusted
{
cv::threshold(img, work, 30, 255, CV_THRESH_OTSU);
cv::bitwise_and(img, work,img);
cv::normalize(img, img, 0, 255, cv::NORM_MINMAX, -1, work);
}
对于不同的迭代,对比度会更好,如下图所示:
i=2:
i=4:
i=6:
在预处理之后,检测暗线应该更容易。这个答案只是对这个想法的解释。如果您想了解更多信息,请在评论中提问。您是否尝试过通过与所需线条垂直的对象查看线条轮廓?如果你做梯度或拉普拉斯等导数滤波,你可能会在一维剖面中找到一些东西