将OpenCV函数findContours()得到的每一个轮廓单独绘制并保存为图片文件的Python代码
2023-09-11 14:15:38 时间
以下面这幅图为例:
上面这张图的名字为:img_300_320.jpg,百度网盘下载链接:https://pan.baidu.com/s/1IaJ8nrQzGuHt3RA8jbu0GQ?pwd=bjkm
可用下面的代码将函数findContours()得到的每一个轮廓单独绘制并保存为图片文件:
# 博主微信/QQ 2487872782
# 有问题可以联系博主交流
# 有图像处理需求也请联系博主
# 图像处理技术交流QQ群 271891601
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# OpenCV的版本为4.1
import numpy as np
import cv2 as cv
import sys
image = cv.imread('F:/material/images/2022/2022-06/img_300_320.jpg')
if image is None:
print('Error: Could not load image')
sys.exit()
# cv.imshow('Source Image', image)
# 原图像转化为灰度图
img_gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
# cv.imshow('img_gray', img_gray)
# 灰度图进行二值化处理,并不是函数findContours要求输入图像为二值图像,
# 而是函数findContours在进行轮廓提取前会把原图中的非0值全部当成1处理。
_, img_B = cv.threshold(img_gray, 71, 255, cv.THRESH_BINARY)
# cv.imshow('img_B', img_B)
# 轮廓检测
cnts, harch = cv.findContours(img_B, mode=cv.RETR_TREE, method=cv.CHAIN_APPROX_SIMPLE)
img_contours = np.zeros((image.shape[0], image.shape[1]), dtype='uint8')
# 将每一个轮廓单独绘制并保存为bmp图片
for index, cnts_ele in enumerate(cnts):
img_contours = cv.drawContours(img_contours, cnts, index, 255, 1, 1)
str1 = 'F:/temp2/Contours_{:0>2d}.bmp'.format(index)
cv.imwrite(str1, img_contours)
img_contours = 0*img_contours
运行结果如下:
我把上面的结果打包,方便大家查看,百度网盘下载链接:https://pan.baidu.com/s/18pFc4BqHhGA6e-3-zhj1Ig?pwd=sscs
相关文章
- python实现FTP程序
- 【玩转Atlas200DK系列】Atlas 200 DK安装python的hiai库以及opencv
- python异常处理与上下文管理器
- python装饰器的使用场景(转)
- python print 打印的数据包含中文,打印报错UnicodeDecodeError: 'gbk' codec can't decode bytes in position 459-460: illegal multibyte sequence解决办法
- python处理xml文件
- 机器学习之决策树(ID3)算法与Python实现
- 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略
- Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)最强详细攻略
- Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
- Python编程语言学习:python中与数字相关的函数(取整等)、案例应用之详细攻略
- 已解决cv2.error: OpenCV(4.2.0) C:projectsopencv-pythonopencvmodulesimgprocsrccolor.cpp:182: erro
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- 已解决2. Set PROTOCOL_BUPFERS_PYTHON_iMPLEMENTATION=python (but this will use pure-Python parsing and w
- 千万不要点进来!看完Python从入门到实践,你就要走上秃头的道路
- 打包速度快、占用内存少,Nuitka:一款堪称打包神器 Python 工具包
- 9个实用的Python小技巧,让你编写出更快、更好的脚本!
- Python实现贝叶斯优化器(Bayes_opt)优化Catboost分类模型(CatBoostClassifier算法)项目实战
- python之opencv播放视频
- OpenCV-Python Feature2D 特征点检测(含ORB/KAZE/FAST/BRISK/AKAZE)
- python基础===利用PyCharm进行Python远程调试(转)
- Python 操作 mongodb 亿级数据量使用 Bloomfilter 高效率判断唯一性 例子
- opencv-python视频处理之视频慢动作和视频漫画风格
- OpenCV-Python学习(20)—— OpenCV 图像几何变换之图像旋转(cv.warpAffine、cv.getRotationMatrix2D、cv.rotate、np.rot90)
- OpenCV-Python实战(4) —— OpenCV 五角星各点在坐标系上面的坐标计算(以重心为原点)
- OpenCV-Python实战(1) —— 给图片添加图片水印【利用 OpenCV 像素的读写原理实现】
- Python开发学习之Python用三十行代码,打造一款简单的人工语音对话