计算机视觉之opencv:边缘检测

opencv API实现

img=cv2.imread('1.jpg',1)
#卷积,边缘检测
cv2.imshow('src',img)


grayimg=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

imgG=cv2.GaussianBlur(grayimg,(3,3),0)
dst=cv2.Canny(img,200,200)

cv2.imshow('dst',dst)
cv2.waitKey(0)

源码实现:

#源码原理 :sobel算子模板与图像矩阵进行卷积运算
img=cv2.imread('5.jpg',0)
rnum=img.shape[0]
cnum=img.shape[1]

dst=np.zeros(img.shape,np.uint8)
# SOBel算子:
# [1,  2,   1,
#  0,  0,   0,
# -1,  -2,   -1]
#
# [1,  0,  -1,
#  2,  0,  -2,
#  1,  0,  -1,]




for i in range(0,rnum-2):
    for j in range(0,cnum-2):
        gy=img[i,j]*1+img[i,j+1]*2+img[i,j+2]*1-img[i+2,j]-2*img[i+2,j+1]-img[i+2,j+2]
        gx=img[i,j]+img[i+1,j]*2+img[i+2,j]-img[i,j+2]-2*img[i+1,j+2]-img[i+2,j+2]
        grad=math.sqrt(gx*gx+gy*gy)
        if grad>50:
            dst[i,j]=255
        else:
            dst[i,j]=0
cv2.imshow('dst',dst)
cv2.waitKey(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值