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

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/568858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存