题目描述 利用opencv或其他工具编写程序实现图像的边缘提取。
实现过程
import cv2 import numpy as np # imread()两个参数: # 1、图片路径。 # 2、读取图片的形式(1:默认值,加载彩色图片。 0:加载灰度图片。 -1:加载原图片) img = cv2.imread(r"C:\Users\pc\Desktop\test1.bmp") cv2.imshow('img', img) ret, thresh1 = cv2.threshold(img, 80, 255, cv2.THRESH_BINARY) # 阈值分割,黑白二值 ret, thresh2 = cv2.threshold(thresh1, 80, 255, cv2.THRESH_BINARY_INV) # (黑白二值反转) cv2.imshow('img1', thresh1) cv2.imshow('img2', thresh2) # Canny算子是双阈值,所以需要指定两个阈值,阈值越小,边缘越丰富。 img3 = cv2.Canny(img, 80, 255) # 对img3图像进行反转 img4 = cv2.bitwise_not(img3) cv2.imshow('img4', img4) cv2.waitKey() # 关闭窗口并取消分配任何相关的内存使用 cv2.destroyAllWindows()
运行结果