由于对碗口进行缺口检测,因此只需要碗口的边界信息。得到陶瓷碗区域填充后的图像,对图像进行边缘检测。这是属于图像分割中的内容,在图像的边缘中,可以利用导数算子对数字图像求差分,将边缘提取出来。
本案例采用Canny边缘算子进行边缘提取,图a为原图像,图b为使用Canny算子提取的边缘图像。
Canny算子的优点为:低错误率,所有边缘都可被找到,且没有伪响应;边缘点被很好地定位,已定位的边缘接近真实边缘;单一的边缘点响应,仅存一个单一边缘点的位置。
下图为基于Python的图像分割
import cv2
# 加载图片并转换为灰度图像
image = cv2.imread('input_image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 对图像应用Canny边缘检测器
edges = cv2.Canny(gray, 30, 70)
# 显示结果
cv2.imshow("Edged Image", edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
a)原图像 b)边缘提取后只含碗边界的图像?