边缘检测是识别图像中对象边界的术语。我们将学习使用Canny边缘检测技术的边缘检测。坎尼边缘检测的语法为:
edges = cv2.Canny('/path/to/img', minVal, maxVal, apertureSize, L2gradient)
参数-
- / path / to / img:图片的文件路径(必填)
- minVal:最小强度梯度(必需)
- maxVal:最大强度梯度(必需)
- 孔径:这是可选参数。
- L2gradient:其默认值是false, 如果值是true, 则Canny()使用计算量更大的等式来检测边缘, 从而以资源为代价提供更高的准确性。
import cv2img = cv2.imread(r'C:\Users\DEVANSH SHARMA\cat_16x9.jpg')edges = cv2.Canny(img, 100, 200)cv2.imshow("Edge Detected Image", edges)cv2.imshow("Original Image", img)cv2.waitKey(0)# waits until a key is pressedcv2.destroyAllWindows()# destroys the window showing image
输出
文章图片
示例:实时边缘检测
# import libraries of python OpenCVimport cv2# import Numpy by alias name npimport numpy as np# capture frames from a camera cap = cv2.VideoCapture(0)# loop runs if capturing has been initialized while (1):# reads frames from a camera ret, frame = cap.read()# converting BGR to HSV hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)# define range of red color in HSV lower_red = np.array([30, 150, 50])upper_red = np.array([255, 255, 180])# create a red HSV colour boundary and# threshold HSV image mask = cv2.inRange(hsv, lower_red, upper_red)# Bitwise-AND mask and original image res = cv2.bitwise_and(frame, frame, mask=mask)# Display an original image cv2.imshow('Original', frame)# discovers edges in the input image image and # marks them in the output map edges edges = cv2.Canny(frame, 100, 200)# Display edges in a frame cv2.imshow('Edges', edges)# Wait for Esc key to stop k = cv2.waitKey(5) &
0xFFif k == 27:break# Close the window cap.release()# De-allocate any associated memory usage cv2.destroyAllWindows()
【OpenCV Canny边缘检测】输出
文章图片
推荐阅读
- OpenCV模糊(图像平滑)
- OpenCV教程 | Python使用OpenCV
- OpenCV Blob检测
- i.MX6DL飞思卡尔双核安卓核心板主控
- Android系统移植(驱动篇)
- Android Messenger
- Android Studio项目生成Jar包
- 利用monkey测试android,入门级用户可能遇见的错误及解决办法
- 移动app测试点的整理