环境:Python3.8 和 OpenCV
内容:绘制图像轮廓(边缘)
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 封装图片显示函数
def image_show(image):
if image.ndim == 2:
plt.imshow(image, cmap='gray')
else:
image = cv.cvtColor(image, cv.COLOR_BGR2RGB)
plt.imshow(image)
plt.show()
if __name__ == '__main__':
# 读取灰度图
img_desk = cv.imread('desk.png', 0)
# 转换为二值图
[_, img_bin] = cv.threshold(img_desk, -1, 255, cv.THRESH_OTSU)
# 寻找轮廓坐标点
[contours, hierarchy] = cv.findContours(img_bin, cv.RETR_LIST, cv.CHAIN_APPROX_NONE)
# 将原图像转换为RGB图
img_rgb = cv.merge([img_bin, img_bin, img_bin])
# 绘制轮廓点
cv.drawContours(img_rgb, contours, -1, (0, 0, 255), 1)
# 显示图片
image_show(img_rgb)