基于python-opencv的图像中截取多边形区域
最近在语义分割领域苦苦挣扎,模型训练出来后,效果只能说勉强接受,考虑能不能在语义分割模型后追加一层分类模型,对每一个区域再做一次分类。本文仅记录如何在原图中截取出多个多边形。
原图是这样的:
我想要是每个食材的图片,大概是这样的
我已经有了鱼块在图片的多边形坐标(在做图片标注的时候生成的),数据格式大概是这样的[[x1,y1],[x2,y2]…[xn,yn]],现在要做的就是按照这些坐标,从原图中抠出这部分,保存到另外一张黑色背景图中。
话不多说,直接上代码了:
def img_paste(img_path, polygon_dict, save_name=False):'''img_path:图片的路径polygon_dict:位置的字典,形如{'yu':[[x1,y1],[x2,y2].....[x3,y3]]}save_name:保存的图片的名字Return:'''image = cv2.imread(img_path)for k, v in polygon_dict.items():polygon_list = v#创建一个和原图一样的全0数组im = np.zeros(image.shape[:2], dtype="uint8")for i in range(len(polygon_list)):b = np.array(polygon_list[i], dtype=np.int32)roi_t = []for j in range(len(polygon_list[i])):roi_t.append(b[j])roi_t = np.asarray(roi_t)roi_t = np.expand_dims(roi_t, axis=0)#把所有的点画出来cv2.polylines(im, roi_t, 1, 255)#把所有点连接起来,形成封闭区域cv2.fillPoly(im, roi_t, 255)mask = im#将连接起来的区域对应的数组和原图对应位置按位相与masked = cv2.bitwise_and(image, image, mask=mask)#cv2中的图片是按照bgr顺序生成的,我们需要按照rgb格式生成b, g, r = cv2.split(masked)masked = cv2.merge([r, g, b])image_1 = Image.fromarray(masked)if save_name:k = save_namesave_path = '/home/ubuntu/label_polygon_test/VGG/png/'if not os.path.exists(save_path):os.makedirs(save_path)image_1.save(save_path + '{0}.png'.format(k), "PNG")
基于python-opencv的图像中截取多边形区域相关推荐
- 基于python+opencv的图像目标区域自动提取
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx 一.提取纸张中的内容 一张照片中的感兴趣区域总是沿着x,y,z三个轴都有一定倾斜(如下图),要 ...
- Python+Opencv寻找图像中最亮的区域
目录 一.场景需求解读 二.算法原理简介 三.算法代码实现 四.代码运行步骤 五.算法效果展示和分析 六.思维扩展 参考资料 注意事项 一.场景需求解读 在有些现实场景中,我们需要去使用算法自动的 ...
- pythonopencv提取圆内图像_python – 使用OpenCV从图像中提取多边形给定...
使用cv2.fillConvexPoly以便您可以指定2D点阵列并定义一个蒙版,该蒙版填充由这些点定义的形状在蒙版中为白色.如果多边形中定义的点是凸的(因此名称为fillConvexPoly),则应该 ...
- python怎么绘制坐标图像_如何使用给定的坐标和python opencv在图像中绘制点?
I have one image and one co-ordinate (X, Y). How to draw a point with this co-ordinate on the image. ...
- 基于Python+OpenCV的图像搜索引擎(CBIR+深度学习+机器视觉)含全部工程源码及图片数据库下载资源
目录 前言 总体设计 系统整体结构图 系统流程图 运行环境 模块实现 1. 数据预处理 2. 定义图像描述符 3. 索引化数据集 4. 设计搜索引擎内核 5. 执行搜索 系统测试 1. 处理数据集 2 ...
- 利用OpenCV提取图像中的矩形区域(PPT屏幕等)
** 前言 ** 最近参加了大创项目,题目涉及到计算机视觉,学姐发了个修正图像的博客链接,于是打算用这个题目入门OpenCV. 分析问题 照片中的PPT区域总是沿着x,y,z三个轴都有倾斜(如下图), ...
- 使用Python,OpenCV制作图像Mask——截取ROIs及构建透明的叠加层
使用Python,OpenCV制作图像Mask--截取ROIs及构建透明的叠加层 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用OpenCV制作Mask图像掩码.使用位运算和图像掩码允许我们只 ...
- 使用Python和OpenCV检测图像中的条形码
使用Python和OpenCV检测图像中的条形码 1. 效果图 2. 算法的步骤 3. 源码 参考 这篇博客将介绍使用计算机视觉和图像处理技术进行条形码检测的必要步骤,并演示使用Python编程语言和 ...
- 使用Python,OpenCV查找图像中的最亮点
Python,OpenCV找出图像中的最亮点 1. 原理 2. 优化 3. 效果图 4. 源码 参考 这篇博客将向您展示如何使用Python和OpenCV查找图像中的最亮点,以及应用单行预处理代码-- ...
最新文章
- RHEL 5基础篇—文件和目录的管理
- 用飞桨做自然语言处理:神经网络语言模型应用实例
- spring中事件发布设计与实现
- C++_标准模板库STL概念介绍5-其他库与总结
- Qt Creator连接iOS设备
- php 读取页面全部变量,PHP-如何从外部文件获取“页面”变量?
- OJ1076: 三位数求解(C语言)
- 阿克苏计算机考试成绩查询,阿克苏高考成绩查询系统2021
- 在matlab中对hsv进行均匀量化和非均匀量化
- wps下一步快捷键_WPS快捷键大全(最常用138个办公快捷键)
- 异步fifo_【好设计论文】一种面向异步FIFO的低开销容错机制研究
- 路飞学城Python-Day78
- python修改文件的某一行_简单文件操作python 修改文件指定行的方法
- MATLAB 2016b--神经网络工具箱中BP网络的实现
- UVa 11223 - O: dah dah dah!
- python访问陌生人qq空间_用Python登录好友QQ空间点赞
- 如何快速在线压缩图片大小(包括放大、缩小图片,指定图片尺寸和压缩图片品质)
- endnote 使用方法
- cocos creator 牌面翻转
- NFS导致df -h卡主解决
热门文章
- 编写函数求区间[200,3000]中所有的回文数, 回文数是正读和反读都是一样的数
- C语言基础入门48篇_30_二维数组的定义与使用(二维数组的定义:type 数组名[行][列]、二维数组的初始化、二维数组的引用)
- Git rm和rm --cached区别
- 【微信小程序】上传Word、txt、Excel、PPT等文件
- 目不暇接 时尚艳丽的新款苹果手机 MAC APPLE
- 解决浏览器访问GitHub响应时间长,速度慢的问题
- api存在csrf攻击吗_使用rest api防止单页应用上的csrf攻击
- 解决Ubuntu 安装时Unable to fetch some archives connection failed [ip: 91.189.91.39 80]
- chrome 91版本 解决跨域请求SameSite
- 数据存取演变史、数据库软件应用史、数据库的本质、分类、 MySQL数据库、系统服务制作、基本的SQL语句