本文共 955 字,大约阅读时间需要 3 分钟。
Fu Xianjun. All Rights Reserved.
图像的边缘是图像的基本特征,边缘点是灰度阶跃变化的像素点,即灰度值的导数较大或极大的地方,边缘检测是图像识别的第一步。用图像的一阶微分和二阶微分来增强图像,本质上计算的就是灰度的变化情况,而边缘也就是灰度变化的地方。因此,这些传统的一阶微分算子如Robert、Sobel、prewitt等,以及二阶微分算子Laplacian等等本质上都是可以用于检测边缘的
代码如下:
import cv2import numpy as np
代码如下:
img = cv2.imread("hang.jpg")cv2.imshow("original",img)gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)ret, binary = cv2.threshold(gray,60,255,0)contours, hierarchy = cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)print(len(contours))x = 0for i in range((len(contours))): area = cv2.contourArea(contours[i]) print(area) if area > 10000: x = ihull = cv2.convexHull(contours[x])img1=cv2.drawContours(img,contours,x,(255, 255, 0), 2)cv2.imshow("img",img)cv2.waitKey()cv2.destroyAllWindows()
这里对文章进行总结: 以上就是今天要讲的内容,本文仅仅简单介绍了OpenCV中图像的边缘检测的使用,而OpenCV提供了大量能使我们快速便捷地处理数据的函数和方法。
转载地址:http://qkusi.baihongyu.com/