python裁剪图片并保存_python – 如何从图像中剪切轮廓并将其保存到新文件中
大家好,这是我的第一个问题所以请保持温和.我有一个计算机视觉领域的项目,我是新的,我会很感激一些帮助.我有一个pcb的图像,我的(首先)任务是从背景中切断电路板并将其保存到新文件.
如果结果只是没有灰色背景的普通pcb,那就没问题了.
我到目前为止尝试的是,首先使用阈值将图像转换为二进制.然后我使用cv2.findContours搜索轮廓,找到它们后,我对轮廓进行了排序并绘制了最大的轮廓
经过一些研究,我发现了一种切割轮廓并将其保存为新图像的方法.我使用x,y,w,h = cv2.boundingRect来查找轮廓的宽度和高度,并使用[y:y h,x:x w]来仅保存轮廓.问题是,使用这种方法我也会因为某些原因而考虑一些背景,如pic3所示.
有没有办法切断电路板,所以结果将是图像pic1中的黑色矩形或至少没有灰色背景的电路板?
UPDATE
我设法制作了面具并做了bitwise_and,但结果是黑色background.the result板可以有人帮我删除黑色背景并只留下图像中的板吗?
谢谢!
最佳答案 我做了一些工作,并按照以下方式裁剪区域.我想这就是你想要的.
基本上,我在图像上做这些操作.
1. medianBlur图像,阈值和变形操作.
2.项目到轴,阈值并获得约束.
3.裁剪该地区.
#!/usr/bin/python3
# 2017.10.04 23:45:01 CST
# 2017.10.05 00:52:26 CST
#how to cut a contour from an image and save it to a new file
from matplotlib import pyplot as plt
import numpy as np
import cv2
import time
imgname = "pcb.jpg"
img = cv2.imread(imgname)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
## medianBlur, threshold and morph-close-op
median = cv2.medianBlur(gray, ksize=17)
retval, threshed = cv2.threshold(median, 110, 255, cv2.THRESH_BINARY_INV)
closed = cv2.morphologyEx(threshed, cv2.MORPH_CLOSE, np.ones(15,15))
## Project to the axis
H,W = img.shape[:2]
xx = np.sum(closed, axis=0)/H
yy = np.sum(closed, axis=1)/W
## Threshold and find the nozero
xx[xx<60] = 0
yy[yy<100] = 0
ixx = xx.nonzero()
iyy = yy.nonzero()
x1,x2 = ixx[0][0], ixx[0][-1]
y1,y2 = iyy[0][0], iyy[0][-1]
## label on the original image and save it.
res1 = cv2.rectangle(img.copy(), (x1,y1),(x2,y2), (0,0,255),2)
res2 = img[y1:y2,x1:x2]
cv2.imwrite("result1.png", res1)
cv2.imwrite("result2.png", res2)
python裁剪图片并保存_python – 如何从图像中剪切轮廓并将其保存到新文件中相关推荐
- python裁剪图片边缘模糊_Python OpenCV 图片高斯模糊
Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧. 基础知识铺垫 看到一种说法,解释高斯模糊的比较简单,高斯模糊是带加权的均值模糊. 大概解释如下: 高斯模糊实质上就是一种均 ...
- Python裁剪图片(Crop an Image)
Python裁剪图片(Crop an Image) 目录 Python裁剪图片(Crop an Image) #原始图像 #图像剪裁 #处理后的图像
- python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。...
[单选题]李明在他所属的公司工作五年,每天都很认真地处理繁杂的事情,同事们都夸他认真,但是依然没有建树,这是因为: [多选题]品牌标志的作用表现在 [单选题]新产品开发的第一个阶段是_______. ...
- python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。(4.0分)_学小易找答案...
[单选题]文本文件存储的是(),由若干文本行组成,通常每行以换行符 '\n' 结尾.(4.0分) [单选题]()属性是返回被打开文件的访问模式.(4.0分) [单选题]重力坝是由砼或( )修筑而成的大 ...
- python使用pandas中的to_json函数将dataframe数据写入json文件中
python使用pandas中的to_json函数将dataframe数据写入json文件中 目录 python使用pandas中的to_json函数将dataframe数据写入json文件中 #导入 ...
- python裁剪图片box并保存_python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
文件目录 Annotations中是XML文件. JPEGImages中是对应的JPG文件 XML文件 要截取bndbox坐标中的内容. python代码 # -*- coding: utf-8 -* ...
- python将图片转换为字符_python如何将图片转换为字符图片
简介 一个简单的python程序,将图片转换为字符图片. (为了简便,很多参数写死了,自己看着改吧. (←∀←)) 正文 原图(侵删) 结果图 源码 [更多细节]-->戳这里 #-*- codi ...
- python 裁剪图片
最近笔者有个东西,需要上传的时候,让用户来裁剪图片,网上基本的做法,就是在本地的浏览器裁剪完毕,把裁剪后的坐标情况告诉服务器,让服务器来裁剪,因为笔者不是用PHP,无法享受GD模块的帮助了,所以利用p ...
- python将图片转为字符_Python将图片转化为字符画
简介 最近发现一个有趣的操作, 将一张图片转化为字符串的模式来显示! 如图 准备 首先需要安装一个CV模块用来导入图片的#pip install opencv-python 然后明确下程序的设计思路1 ...
最新文章
- w3wp.exe内存占用过高(网站打不开,应用程序池回收就正常)
- mysql添加枚举约束语句_mysql8 参考手册--MySQL如何处理约束
- 宝塔 php curl 配置,【笔记】宝塔面板配置laravel
- java巴特沃斯滤波器编程_巴特沃斯(Butterworth)滤波器 (1)
- 如何在CRM WebClient UI里使用HANA Live Report
- 深入react技术栈(1):React简介
- 【numpy】np.random.normal()函数
- 【WPF】右下角弹出自定义通知样式(Notification)——简单教程
- 使用Eclipse开发基于SSH三大框架的Web项目带图详解
- 大牛直播SDK-Windows RTMP/RTSP/本地FLV播放器使用说明...
- 社区发现算法————总结
- centos部署mosquitto
- python爬虫Selenium批量关注微博用户
- 编译原理学习之:上下文无关文法(Context-free Grammar)和下推自动机(Push-down automata)
- 敏涵控股集团董事长刘敏: “匠心精神”的专业引路人
- linux笔记(6):东山哪吒D1H测试HDMI显示内置图片-命令行调试
- Synchronized你以为你真的懂?
- ICSharpCode.SharpZipLib 压缩、解压文件
- Leetcode日练笔记8 #702 Search in a Sorted Array of Unknown Size (Medium)
- Deseja sua sorte boa, Renato Augusto
热门文章
- 工作流实战_21_flowable 加签 任务向前加签 向后加签
- 深入理解javascript之原型和原型链
- 学生成绩管理系统java+mysql+swing入门级项目开发
- python line strip_Python进阶---python strip() split()函数实战(转)
- python3新式类_python新式类和旧式类区别
- mysql csdn 知乎_CSDN 怎么样?
- C语言逗号表达式 - C语言零基础入门教程
- Java zset 应用_Java简单使用redis-zset实现排行榜
- js 条码枪扫描_年会展台 精彩不断 | 沧田:从打印到扫描录入 国产品牌从未停止...
- oracle中的自带函数,求完整的ORACLE自带函数文档