“从低对比度图像中提取圆形轮廓:Halcon实例转OpenCV”是本篇文章的主题。在工业领域,我们经常需要从低对比度的图像中提取出目标的轮廓信息。本文将介绍如何使用OpenCV库来进行轮廓提取,并给出相应的源代码。
首先我们需要加载一张图像,并对它进行预处理,以提高图像的对比度。这里我们使用Gamma校正方法来提高图像的亮度,使目标轮廓更加明显。
import cv2
import numpy as np
# 加载图像
img = cv2.imread("image.jpg")
# 进行Gamma校正
gamma_value = 1.5
gamma_table = [np.power(x/255.0, gamma_value)*255.0 for x in range(256)]
gamma_table = np.round(np.array(gamma_table)).astype(np.uint8)
img = cv2.LUT(img, gamma_table)
接下来,我们使用Canny算子来进行边缘检测,通过调整阈值来得到更明显的轮廓信息。为了减少噪点的干扰,我们还需要进行高斯模糊处理。
# 进行高斯模糊
img_blur = cv2.GaussianBlur(img, (5,5), 0)
# 进行Canny边缘检测
edges = cv2.Canny(img_blur, 30, 120)
接下来,我