博客
关于我
python cv2截取不规则区域图片
阅读量:798 次
发布时间:2023-03-05

本文共 2117 字,大约阅读时间需要 7 分钟。

知识掌握

cv2.threshold()函数

该函数用于设置固定级别的阈值应用于多通道矩阵,将灰度图像转换为二值图像,或去除指定级别的噪声,或过滤掉过小或者过大的像素点。函数定义如下:

Python: cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst

其中:

  • src:表示图片源
  • thresh:表示阈值(起始值)
  • maxval:表示最大值
  • type:表示阈值的类型,常用值为0(cv2.THRESH_BINARY)

示例代码:

import cv2  img = cv2.imread('1.jpg')  cv2.imshow("src", img)  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  ret, dst = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)  cv2.imshow("dst", dst)  cv2.waitKey(0)

cv2.findContours()函数

该函数用于检测图像中的物体轮廓。函数定义如下:

cv2.findContours(image, mode, method)

函数返回两个值:contourshierarchy。在OpenCV3中,返回三个值:img、contours、hierarchy。其中:

  • image:表示寻找轮廓的图像
  • mode:轮廓检索模式,共有四种取值:
    • cv2.RETR_EXTERNAL:只检测外轮廓
    • cv2.RETR_LIST:检测的轮廓不建立等级关系
    • cv2.RETR_CCOMP:建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息
    • cv2.RETR_TREE:建立一个等级树结构的轮廓
  • method:轮廓近似方法,共有三种取值:
    • cv2.CHAIN_APPROX_NONE:存储所有的轮廓点
    • cv2.CHAIN_APPROX_SIMPLE:压缩水平方向、垂直方向和对角线方向的点,保留关键点
    • cv2.CHAIN_APPROX_TC89_L1、CV_CHAIN_APPROX_TC89_KCOS:使用teh-Chinl chain 近似算法

示例代码:

import numpy as np  import cv2  rectangle = np.zeros((300,300), dtype="uint8")  cv2.rectangle(rectangle, (25,25), (275,275), 255, -1)  cv2.imshow("Rectangle", rectangle)  img, contours, hierarchy = cv2.findContours(rectangle, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)  print(contours)  print(hierarchy)  cv2.waitKey(0)

cv2.polylines()函数

该函数用于绘制多边形。函数定义如下:

cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[,shift]]])

参数说明:

  • pts:顶点坐标,需要转换为rowsx1x2形状的数组,rows是顶点数,类型为int32
  • isClosed:布尔值,表示是否闭合多边形
  • color:线条颜色
  • thickness:线条厚度
  • lineType:线条类型
  • shift:线条偏移量

示例代码:

import numpy as np  import cv2  # 创建黑色图像  img = np.zeros((200, 200, 3), np.uint8)  pts = np.array([[10, 5], [20, 30], [70, 20], [80, 15]])  cv2.polylines(img, pts, True, (0, 255, 0), 2, cv2.LINE_AA, shift=1)  cv2.imshow("Polylines", img)  cv2.waitKey(0)

转载地址:http://gvafk.baihongyu.com/

你可能感兴趣的文章
Python exec 函数解析:探索动态代码执行的无限可能!
查看>>
Python EXEC和__NAME__
查看>>
Python exe文件打包神器-Nuitka!
查看>>
python file
查看>>
Python FileDialog获取文件夹路径不是文件
查看>>
python filter过滤器的使用_python基础知识分享:zip()、filter函数和reduce如何使用?...
查看>>
python flask 请求code 400, message Bad request version
查看>>
Python Flink Stateful函数入口上的Kafka键访问
查看>>
Python float - str - 浮动怪异
查看>>
Python Flower库:分布式任务管理与监控
查看>>
Python for 循环和迭代器行为
查看>>
Python For循环多次返回
查看>>
python frame_python3 selenium自动化 frame表单嵌套的切换方法
查看>>
Python ftplib - 指定端口
查看>>
Python furl库:一键搞定复杂URL操作
查看>>
Python GC 也会关闭文件吗?
查看>>
python gen_key.py 报错 提示找不到OpenSSL lib
查看>>
python getattrribute_Python学习——面向对象高级之反射
查看>>
Python进阶语法:字典推导式
查看>>
python gil_Python中GIL的使用详解
查看>>