美文网首页
09边缘检测2

09边缘检测2

作者: 犬夜叉写作业 | 来源:发表于2019-07-17 15:14 被阅读0次

通过sobe算法的算子原理,使用源码实现边缘检测

import cv2
import numpy as np
import random
import math
img = cv2.imread('image0.jpg',1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
cv2.imshow('src',img)

# sobel 1 算子模版 2 图片卷积 3 阈值判决 
# [1 2 1          [ 1 0 -1
#  0 0 0            2 0 -2
# -1 -2 -1 ]       1 0 -1 ]
              
#卷积 [1 2 3 4] [a b c d] a*1+b*2+c*3+d*4 = dst
# 计算梯度sqrt(a*a+b*b) = f   a为水平方向梯度,b为竖直方向梯度,a与b是通过与算子卷积得到的
#将f与幅值th进行对比,如果f>th,则认为是边缘

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
dst = np.zeros((height,width,1),np.uint8)
for i in range(0,height-2): #注意卷积溢出,因为是3*3矩阵,所以减2
    for j in range(0,width-2):
        gy = gray[i,j]*1+gray[i,j+1]*2+gray[i,j+2]*1-gray[i+2,j]*1-gray[i+2,j+1]*2-gray[i+2,j+2]*1
        gx = gray[i,j]+gray[i+1,j]*2+gray[i+2,j]-gray[i,j+2]-gray[i+1,j+2]*2-gray[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)

相关文章

  • 09边缘检测2

    通过sobe算法的算子原理,使用源码实现边缘检测

  • opencv+python学习记录(二十)边缘检测

    边缘检测包含:Prewitt边缘检测、Sobel边缘检测、Scharr算子、Canny边缘检测、Laplacian...

  • Canny边缘检测---OpenCV-Python开发指南(22

    什么是Canny边缘检测 Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。该方法由John F. Ca...

  • 仿真动画

    标签:弹性附着行为、刚性附着行为、碰撞边缘检测、推动行为、吸附行为、重力行为1 重力行为 2 碰撞边缘检测 3 吸...

  • Opencv第三课---边缘检测

    边缘检测 边缘检测是图像领域非常重要的一种处理手段,要理解边缘检测,首先要理解什么是边缘。边缘是图像局部强度具有非...

  • Task06 边缘检测

    6.1 简介 6.1.1 什么是边缘? 边缘是图像强度函数快速变化的地方 6.1.2 如何检测边缘? 为了检测边缘...

  • cv领域之边缘检测技术学习

    一、边缘检测简单介绍 边缘检测是图像分割中最常见的操作之一,一般提到边缘可能有三个概念: 边缘检测:定位边缘像素的...

  • 图像轮廓(1)

    边缘检测虽然能够检测出边缘,但是边缘不是连续的,检测到的边缘不是一个整体。图像轮廓是指将边缘连接起来形成一个整体 ...

  • 数字图像 - 边缘检测原理 - Sobel, Laplace,

    先来看张图,左边是原图,右边是边缘检测后的图,边缘检测就是检测出图像上的边缘信息,右图用白色的程度表示边缘的深浅。...

  • 【Unity Shader入门精要学习】高级(二)

    屏幕后处理效果 边缘检测 边缘检测的原理是利用一些边缘检测算子对图像进行卷积(convolution)操作 一、卷...

网友评论

      本文标题:09边缘检测2

      本文链接:https://www.haomeiwen.com/subject/fszbkctx.html