如何使用Sobel算子对图片进行边缘检测?
1、在文本编辑器中使用如下代码导入opencv、numpy和matplotlib三个模块:
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
2、使用代码 img = cv.imread('./img/horse.jpg',0) 以灰度形式读入待处理图片,并用代码 plt.imshow(img,cmap=plt.cm.gray) 显示读入的图片。
3、由于图片有长宽两个二维度,使用如下代码对图片x轴y轴分别求导:
x = cv.Sobel(img,cv.CV_16S,1,0)
y = cv.Sobel(img,cv.CV_16S,0,1)
4、使用如下代码将步骤3中得到的数据转换为unmpy.uint8类型:
absx = cv.convertScaleAbs(x)
absy = cv.convertScaleAbs(y)
5、使用代码 res = cv.addWeighted(absx,0.5,absy,0.5,0) 将x轴y轴各得到的图片进行混合,混合时两图片的权重各为0.5。
6、使用代码 plt.imshow(res,cmap=plt.cm.gray) 显示处理完成后的图片,可以发现图片的边缘被检测出来。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:112
阅读量:179
阅读量:107
阅读量:189
阅读量:189