码迷,mamicode.com
首页 > 其他好文 > 详细

opencv基础操作:边缘检测

时间:2021-02-05 10:53:28      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:lan   simple   技术   count   key   画图   blur   print   lang   

说明

  1. 共用了两种方法进行检测
    1. 方法1: 使用opencv的canny进行边缘检测,在此之前先变灰和加入高斯模糊
    2. 方法2: 对图片二值化,随后找到关键点,并在空白画板画关键点

代码

import cv2 as cv
import numpy as np
# 读路径下的图片
img = cv.imread("./cat.jpg")
# 创建纯黑画板
blank = np.zeros(img.shape, dtype="uint8")
# 变灰
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow("gray", gray)
# 模糊, 如果不用模糊,边缘点会非常多 
blur = cv.GaussianBlur(gray, (5,5), cv.BORDER_DEFAULT)
# 二值化 寻找边缘点并画图
ret, thresh = cv.threshold(gray, 125, 225,cv.THRESH_BINARY)
counters, heirarchies = cv.findContours(thresh, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
cv.drawContours(blank, counters, -1, (255,255,255), 1)
# print(len(counters))
# 边缘检测
canny = cv.Canny(blur, threshold1=100, threshold2=200)
cv.imshow("canny",canny)
cv.imshow("THRESH_BINARY",blank)
cv.waitKey(0)

截图

技术图片

opencv基础操作:边缘检测

标签:lan   simple   技术   count   key   画图   blur   print   lang   

原文地址:https://www.cnblogs.com/Coder-Photographer/p/14375459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!