-
2021-02-10 20:04:30
python 分割 画图像的轮廓
import numpy as np
import cv2
__author__ = 'xinyang'
Img_N = 130
algo_seg_folder = 'G:/ctx_2'
gt_seg_folder = 'G:/gt'
src_us_folder = 'G:/src_img'
save_folder = 'G:/only_gt_fuse'
for k in range(Img_N):
# for k in range(2):
print 'No. %d image...' % k
src_us_name = src_us_folder + '/' + str(k) + '.png'
gt_seg_name = gt_seg_folder + '/' + str(k) + '.png'
algo_seg_name = algo_seg_folder + '/' + str(k) + '.png'
src_us = cv2.imread(src_us_name, 1)
gt_seg = cv2.imread(gt_seg_name, 0)
algo_seg = cv2.imread(algo_seg_name, 0)
# get contour
gt_ret, gt_binImg = cv2.threshold(gt_seg, 127, 255, 0)
gt_im2, gt_contours, gt_hierarchy = cv2.findContours(gt_binImg, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
algo_ret, algo_binImg = cv2.threshold(algo_seg, 127, 255, 0)
algo_im2, algo_contours, algo_hierarchy = cv2.findContours(algo_binImg, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# draw contour
cv2.drawContours(src_us, gt_contours, -1, (0, 0, 255), 2)
# cv2.drawContours(src_us, algo_contours, -1, (0, 255, 0), 2)
# save
save_name = save_folder + '/' + str(k) + '.png'
cv2.imwrite(save_name, src_us)
更多相关内容 -
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2020-09-19 04:34:01主要介绍了opencv python 图像轮廓/检测轮廓/绘制轮廓的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
OpenCV实现人脸识别与轮廓检测
2020-06-08 23:06:30OpenCV实现人脸识别与轮廓检测,涉及图像处理的基本知识,比如打开摄像头,图像读取,Canny算子,腐蚀与膨胀等等 -
基于轮廓图的人体跟踪和动作序列识别
2021-04-05 11:57:50本文介绍了一种用于人体轮廓跟踪和动作序列识别的新框架。 给定一个带有标签的人类轮廓序列的画廊,我们将每个轮廓定义为一个“单词”,并将它们全部编码为轮廓字典。 该词典将用于翻译视频。 为此,通过连接所有... -
opencv提取图片中人轮廓
2016-03-29 19:40:44从静态的视频帧中获取的人物图片先二值化,再利用开操作闭操作以及轮廓填充,获取人物轮廓 -
用python画目标的外轮廓线(含python代码)
2021-08-07 11:43:16假如你有一张如图1的影像,你想把这三个目标的轮廓画出来,那么可以用以下代码实现。 import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpathes from skimage import io import...图1 原图像
假如你有一张如图1的影像,你想把这三个目标的轮廓画出来,那么可以用以下代码实现。
import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpathes from skimage import io import cv2 image= io.imread('1.png')#rgb三通道影像 image2 = np.zeros((image.shape[0],image.shape[1],image.shape[2]),dtype = np.uint8) imgray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) thresh = imgray thresh[thresh!=0]=255 print(np.unique(thresh)) #thresh为转换成黑白色的二值图 contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) cv2.drawContours(image2,contours,-1,(0,0,255),5) #(0,0,255)为轮廓颜色,5为轮廓线粗细 io.imsave('2.png',image2.astype(np.uint8))
至此,大功告成!!!
整理不易,欢迎一键三连哦~~
-
画出轮廓drawContours
2017-07-21 14:37:03主要用于画出图像的轮廓 2、函数的调用形式 void drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness=1, int lineType=8, In1、drawContours函数的作用
主要用于画出图像的轮廓
2、函数的调用形式
void drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar& color, int thickness=1, int lineType=8, InputArray hierarchy=noArray(), int maxLevel=INT_MAX, Point offset=Point() )
函数参数详解:
其中第一个参数image表示目标图像,
第二个参数contours表示输入的轮廓组,每一组轮廓由点vector构成,
第三个参数contourIdx指明画第几个轮廓,如果该参数为负值,则画全部轮廓,
第四个参数color为轮廓的颜色,
第五个参数thickness为轮廓的线宽,如果为负值或CV_FILLED表示填充轮廓内部,
第六个参数lineType为线型,
第七个参数为轮廓结构信息,
第八个参数为maxLevel
例如:drawContours(scr, contours, -1, Scalar(255, 0, 0), 2, 8);//颜色标记
-
HTML5 canvas粒子生成人物面部轮廓插件
2015-12-17 10:06:34插件描述:一个奇葩的canvasdemo. 参考示例:http://www.jq22.com/jquery-info5145 -
怎么在python中利用opencv对图像的轮廓进行绘制
2021-02-10 20:04:30怎么在python中利用opencv对图像的轮廓进行绘制发布时间:2020-12-14 14:50:58来源:亿速云阅读:92作者:Leah今天就跟大家聊聊有关怎么在python中利用opencv对图像的轮廓进行绘制,可能很多人都不太了解,为了让...怎么在python中利用opencv对图像的轮廓进行绘制
发布时间:2020-12-14 14:50:58
来源:亿速云
阅读:92
作者:Leah
今天就跟大家聊聊有关怎么在python中利用opencv对图像的轮廓进行绘制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
图像轮廓概念
轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。
谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连续(下图)。其实边缘主要是作为图像的特征使用,比如可以用边缘特征可以区分脸和手;而轮廓主要用来分析物体的形态,比如物体的周长和面积等,可以说边缘包括轮廓。
寻找轮廓的操作一般用于二值图像,所以通常会使用阈值分割或Canny边缘检测先得到二值图。
注意:寻找轮廓是针对白色物体的,一定要保证物体是白色,而背景是黑色,不然很多人在寻找轮廓时会找到图片最外面的一个框。
opencv找出图像轮廓
使用cv.findContours()寻找轮廓:import cv2 as cv
import numpy as np
img = cv.imread('j.png')
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
ret, thresh = cv.threshold(img_gray, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)
# 寻找二值图像的轮廓
contours, hierarchy = cv.findContours(
thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
print(len(contours))参数2:轮廓的查找方式,一般使用cv.RETR_TREE,表示提取所有的轮廓并建立轮廓间的层级。
参数3:轮廓的近似方法。比如对于一条直线,我们可以存储该直线的所有像素点,也可以只存储起点和终点。使用cv.CHAIN_APPROX_SIMPLE就表示用尽可能少的像素点表示轮廓。
简便起见,这两个参数也可以直接用真值3和2表示。
函数有2个返回值,hierarchy是轮廓间的层级关系,这个不用理会。我们主要看contours,它就是找到的轮廓了,以链表形式存储,记录了每条轮廓的所有像素点的坐标(x,y)。
opencv绘制图像轮廓
轮廓找出来后,可以像图中那样用红色画出来:cv.drawContours()cv.drawContours(img, contours, -1, (0, 0, 255), 2)
其中参数2就是得到的contours,参数3表示要绘制哪一条轮廓,-1表示绘制所有轮廓,参数4是颜色(B/G/R通道,所以(0,0,255)表示红色),参数5是线宽。经验之谈:很多人画图时明明用了彩色,但没有效果,请检查你是在哪个图上画,画在灰度图和二值图上显然是没有彩色的。一般情况下,我们会首先获得要操作的轮廓,再进行轮廓绘制及分析:
cnt = contours[1]
cv.drawContours(img, [cnt], 0, (0, 0, 255), 2)
实验:找出并绘制图像轮廓import cv2 as cv
import numpy as np
img = cv.imread('jiao.jpg')
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
ret, thresh = cv.threshold(img_gray, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)
# 寻找二值图像的轮廓
contours, hierarchy = cv.findContours(
thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
cnt = contours[1:6]
cv.drawContours(img, cnt, -1, (0, 0, 255), 2)
cv.imshow('result',img)
cv.waitKey(0)
cv.destroyAllWindows()
看完上述内容,你们对怎么在python中利用opencv对图像的轮廓进行绘制有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
-
OpenCV-py学习笔记(四)—— 轮廓检测
2019-08-26 17:56:01文章目录轮廓检测参考资料0. 什么是轮廓?1. 基本使用2. 基本使用示例3. 轮廓的常用特征和性质(外接矩形、等效直径等)4. 轮廓的层级(contours hierarchy) 这几天一直在学习特征点检测、角点检测相关的内容,更新... -
OpenCV图片漫画效果的实现示例
2020-12-17 02:48:46对比现实中的画画,一般是先画出边缘轮廓使整体规划好,再填充颜色使其完整,因此在这里我们也采用这种方式。不过对图片直接操作与从零开始着笔不一样,要将原始图片进行两次不同的处理,再将处理后的两个图片叠加。... -
简单的素描画人物图片
2021-01-17 08:35:15简单的素描画人物图片1简单的素描画人物图片2简单的素描画人物图片3简单的素描画人物图片4简单的素描画人物图片5人物素描的技巧与绘画步骤第一步,构思、构图在开始人物素描前要养成观察对象的特征、酝酿自己情绪的... -
用python程序画出一些简单的动漫人物
2019-12-23 15:30:05小猪佩奇 # coding:utf-8 import turtle as t t.pensize(4) # 设置画笔的大小 t.colormode(255) # 设置GBK颜色范围为0-255 t.color((255,155,192),"pink") # 设置画笔颜色和填充颜色...t.speed(10) # 设置画... -
山东大学计算机图形学OpenGL卡通人物交互
2020-04-28 18:28:03实现基于鼠标交互的卡通人物设计与绘制。使用颜色填充与反走样技术对卡通人物进行绘制...实现对卡通人物轮廓的交互控制,点击鼠标左键可以对人物五官位置进行拖拽移动调整。通过键盘热键可以对卡通人物进行放缩等操作。 -
MATLAB胸部CT图像中肺部提取,轮廓跟踪技术勾画出肺部轮廓
2021-07-04 19:52:39胸部CT图像中肺部提取,轮廓跟踪技术勾画出肺部轮廓 1、实验步骤 2、实验过程 (1)dicom文件的读取 dicom是委员会开发的用于成像设备之间进行通信的标准。使用dicomread函数读取dicom文件,并显示原始横截面胸部 ... -
opencv 绘制图像轮廓
2020-03-30 20:30:54图像轮廓概念 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。 谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连续(下图)。其实边缘主要是作为图像的特征使用,比如可以用... -
运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线、圆、人物轮廓及写字的...
2020-11-07 22:43:30运用C#在VS2017的PictureBox控件中绘制简易二自由度机械臂,并且让机械臂实现画直线、圆、人物轮廓及写字的功能。 给大家看看效果吧 演示写字视频在下: VID 首先放置了诸多控件 在给控件绑定事件前,先... -
opencv生成人脸轮廓c++代码实例及运行结果
2018-02-26 14:26:07c++代码#include<opencv2/opencv.hpp> using namespace std; using namespace cv; ...Mat drawFaceOutline(Mat srcColor... //整体轮廓 Size size = srcColor.size(); Mat faceOutline = Mat::zeros(s... -
ROIRool:在 2D 图像中绘制线轮廓和 2D ROI。-matlab开发
2021-06-01 12:58:00对于在 2D 图像中使用 ROI 的每个人。 在 2D 图像中交互式绘制线轮廓和 2D ROI。 可以分析线轮廓和 ROI 数据。 可以将选定区域发送到工作区进行进一步分析。 双击或右键单击 ROI 编号以获取选项。 使用工具栏选择您... -
动漫Q版人物头部怎么画?
2021-01-15 14:46:03虽然看起来简洁却不简单,同样要求准确的构图和精准的结构,面部是人物的主要视点,通过这一部分能够表现出人物的情绪和性格,想要准确的画出动漫人物的头部,就要先了解人体头部骨骼的结构,今天和小编一起来了解... -
OPENCV之寻找并绘制轮廓以及提取轮廓重心坐标
2020-12-18 20:26:15OPENCV之寻找并绘制轮廓以及提取轮廓中心点 -
印第安人头饰教案.doc
2021-03-04 09:24:10一、导入新课 提到印第安人,有的小朋友就想到了野人,觉得好玩。小朋友们知道吗?印第安人把羽毛作为勇敢的象征,荣誉的标志,印第安人喜欢把羽毛插在...1、在红(棕)色卡纸上画出人物的外轮廓,用黑色笔画出眼睛。 -
【OpenCV-Python】:查找物体轮廓+计算轮廓面积、长度、重心
2022-03-26 20:53:48一、查找物体轮廓 1.1 函数API 函数:img, contours, hierarchy = cv2.findContours(image, mode, method[, contours[, hierarchy[, offset ]]]) . -
android人脸检测并画框demo
2018-05-03 12:55:181. 人脸检测。 2. 自定义图片质量参数,包括最小识别人脸,光亮度,模糊度等。 3.自定义画人脸框,可以替换成任意图片。 -
【框架】如何画出优秀的架构图
2020-05-25 18:05:48画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,本文将介绍一种画图的方法论,来让架构图更清晰。 ... -
OpenCv绘制轮廓+边框
2020-11-18 22:05:06import cv2 import numpy as np img = cv2.imread('6.png') #img = cv2.imread('3.jpg') imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(imgray, 127, 255, 0) ... -
AI钢笔如何绘制生动轮廓线(在AI软件中,如何用钢笔工具绘制出有生动轮廓线的图形?)
2021-01-26 13:58:09这看起来容易,但要画的像原作一样精准而微妙却并不容易。但我通过一丝不苟的练习,最终解决了这个难题。即用钢笔工具绘制婉转而变化微妙的曲线的难题。变化微妙的曲线都能用钢笔工具画准了,那么变化幅... -
一种改进的铅笔 画生成方法
2021-02-25 00:23:34该文提 出 了一 种改进 的 铅笔画 生 成方 法 。 该文 改进 了用 于提取轮廓的 霓虹算 法 , 改进方 法 能 够在保证 ...的铅笔画 生 成方 法 能 够更快速的 将输入 图像 转换 为铅笔 画 , 并能取得令人满 意的 效果 。