【千律】OpenCV基础:绘制图像轮廓(边缘)

环境: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)

你可能感兴趣的:(OpenCV基础,python,opencv)