代码拉取完成,页面将自动刷新
# coding=utf-8
"""
2. 以Lena为原始图像,通过OpenCV使用Sobel及Canny算子检测,比较边缘检测结果。
结果分析:
Sobel算子检测由x轴,y轴分别计算然后合成的效果最佳,边缘检测较明显。
Canny算子边缘检测效果较明显,阈值二值化处理,极大值抑制使图像边缘与其他区域区分更加明显。
Sobel算子效果不错,Canny算子效果则更明显。
"""
import cv2 as cv
LenaFilename = r'lena.jpg'
img = cv.imread(LenaFilename)
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# Sobel 算子边缘检测
deltax = cv.Sobel(gray, cv.CV_32F, 1, 0) # X方向的差异
deltay = cv.Sobel(gray, cv.CV_32F, 0, 1) # Y方向的差异
adsX = cv.convertScaleAbs(deltax)
adsY = cv.convertScaleAbs(deltay)
dst = cv.addWeighted(adsX, 0.5, adsY, 0.5, 0)
cv.imshow("X", adsX) # 运行结果: https://gitee.com/skyrookieyu/csdn_ai25_week2/blob/master/2_1.JPG
cv.imshow("Y", adsY) # 运行结果: https://gitee.com/skyrookieyu/csdn_ai25_week2/blob/master/2_2.JPG
cv.imshow("Sobel", dst) # 运行结果: https://gitee.com/skyrookieyu/csdn_ai25_week2/blob/master/2_3.JPG
# Canny算子边缘检测
canny50 = cv.Canny(gray, 50, 120)
canny80 = cv.Canny(gray, 80, 120)
cv.imshow('Canny50_120', canny50) # 运行结果: https://gitee.com/skyrookieyu/csdn_ai25_week2/blob/master/2_4.JPG
cv.imshow('Canny80_120', canny80) # 运行结果: https://gitee.com/skyrookieyu/csdn_ai25_week2/blob/master/2_5.JPG
cv.waitKey()
cv.destroyAllWindows()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。