Python+OpenCV(十二)——轮廓发现

Python+OpenCV(十二)——轮廓发现

学习视频:python+opencv3.3视频教学 基础入门
其他学习记录:
Python+OpenCV(一)——基础操作
Python+OpenCV(二)——Numpy模块
Python+OpenCV(三)——色彩空间
Python+OpenCV(四)——像素运算
Python+OpenCV(五)——ROI和泛洪填充
Python+OpenCV(六)——均值/中值/自定义/高斯模糊、高斯噪声处理、高斯双边滤波
Python+OpenCV(七)——直方图及其应用
Python+OpenCV(八)——图像二值化
Python+OpenCV(九)——图像金字塔、图像梯度
Python+OpenCV(十)——Canny边缘提取
Python+OpenCV(十一)——直线检测、圆检测
Python+OpenCV(十三)——对象测量
Python+OpenCV(十四)——膨胀与腐蚀
Python+OpenCV(十五)——开闭操作
Python+OpenCV(十六)——顶帽、黑帽
Python+OpenCV(十七)——人脸识别
Python+OpenCV(十八)——数字/字母验证码识别

源码如下:

# -*- coding = utf-8 -*-
# @Time : 2021/8/3 20:31
# @Author : 西兰花
# @File : OpenCV12.py
# @Software : PyCharm


import cv2 as cv    # 引入OpenCV模块
import numpy as np


def countours_demo(image):      # 轮廓发现
    dst = cv.GaussianBlur(image, (3, 3), 0)     # 高斯模糊,降噪
    gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY)
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
    cv.imshow("countours_demo1", binary)

    cloneImage, contours, heriachy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
    for i, contour in enumerate(contours):
        cv.drawContours(image, contours, i, (0, 255, 0), 2)     # 最后一个参数2表示仅标注轮廓,-1表示填充
        print(i)
    cv.imshow("countours_demo", image)


def edge_demo(image):
    blurred = cv.GaussianBlur(image, (3, 3), 0)     # 高斯模糊处理,目的是降噪
    gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY)  # 灰度处理
    grad_x = cv.Sobel(gray, cv.CV_16SC1, 1, 0)      # x轴梯度计算
    grad_y = cv.Sobel(gray, cv.CV_16SC1, 0, 1)      # y轴梯度计算
    edge_output = cv.Canny(gray, 50, 150)           # 自定义阈值范围;最高阈值必须是最低阈值的3倍
    cv.imshow("Canny Egde", edge_output)
    return edge_output


print("------ Hello OpenCV ------")
src = cv.imread("C:/Users/Administrator/Pictures/PS/7.png")     # 读取图像
cv.imshow("input image_2.jpg", src)    # 显示图像
# countours_demo(src)
edge_demo(src)
cv.waitKey(0)

cv.destroyAllWindows()  # 销毁/关闭所有窗口


输出结果:
Python+OpenCV(十二)——轮廓发现_第1张图片
Python+OpenCV(十二)——轮廓发现_第2张图片
Python+OpenCV(十二)——轮廓发现_第3张图片
Python+OpenCV(十二)——轮廓发现_第4张图片

你可能感兴趣的:(python+OpenCV,opencv,计算机视觉,python)