python用opencv完成图像分割并进行目标物的提取


Posted in Python onMay 25, 2020

运行平台: Windows
Python版本: Python3.x
IDE: Spyder
今天我们想实现的功能是对单个目标图片的提取如图所示:

python用opencv完成图像分割并进行目标物的提取

图片读取

###############头文件
import matplotlib.pyplot as plt
import os
import cv2
import numpy as np
from PIL import Image
#from skimage import io
import random
from PIL import Image

首先要完成图片的读取,通过cv2.imshow显示``

img = cv2.imread("1_3img.png")############图片读取
#cv2.imshow('picture', img) 
#cv2.waitKey(0)
pictue_size=img.shape
picture_height=pictue_size[0]
picture_width=pictue_size[1]

边界提取

################灰度化,以及二值化
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray,1,255,cv2.THRESH_BINARY) 
############################

######################边界提取,contours包含边界值的坐标
contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)

边界提取采用cv2.findContours,在进行边缘提取的时候要把图像处理为二值图像,这里要说明一下,不同版本的opencv,cv2.findContours输出的值不同,有两个有三个,我们这个opencv版本输出为两个。
coontours为所有边界点的集合,是一个list,我们图中有三个区域,所以len(list)=3,每一个list里包含边界值数据。

图片提取

img2=[0 for i in range(len(contours))]
print(len(contours))
for i in range(len(contours)):
  img2[i]=cv2.imread("./blackboard/test.jpg")############黑色底板图片读取
  print(img2[i].shape)
#  cv2.drawContours(img2[i],contours[i],-1,(0,0,255),3) #########画边界 
  ###############全图片遍历找到相应的在轮廓之内的点
  for a in range(picture_height):
    for b in range(picture_width):
      #############################################辨别是否在轮廓内是定义为1,不是定义为-1
      result = cv2.pointPolygonTest(contours[i], (a,b), False)
      if result>0:
        img2[i][b,a]=100
  ##############下面填写保存代码
  scipy.misc.imsave('picture'+str(i)+'.jpg',img2[i])

我们先读取一个黑色底版图片,里面所有的值为0,通过cv2.pointPolygonTest函数来分析像素点的位置是否在边界区域内,是返回1,不是返回-1,是的点我们赋值为100,并保存,最后得到我们想要的图片啦

到此这篇关于python用opencv完成图像分割并进行目标物的提取的文章就介绍到这了,更多相关python opencv图像分割并提取内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python zip文件 压缩
Dec 24 Python
python实现网站的模拟登录
Jan 04 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
用pycharm开发django项目示例代码
Oct 24 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 Python
Win 10下Anaconda虚拟环境的教程
May 18 Python
Python调用jar包方法实现过程解析
Aug 11 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 Python
python随机打印成绩排名表
Jun 23 Python
Pytorch转tflite方式
May 25 #Python
Python HTMLTestRunner库安装过程解析
May 25 #Python
Anaconda+vscode+pytorch环境搭建过程详解
May 25 #Python
5行Python代码实现图像分割的步骤详解
May 25 #Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 #Python
keras .h5转移动端的.tflite文件实现方式
May 25 #Python
Python虚拟环境venv用法详解
May 25 #Python
You might like
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
vue ssr+koa2构建服务端渲染的示例代码
2020/03/23 Javascript
Python字符串处理函数简明总结
2015/04/13 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
python实现坦克大战
2020/04/24 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
详解HTML5表单新增属性
2016/12/21 HTML / CSS
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
爱护花草树木的标语
2014/06/11 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
先进个人评语大全
2015/01/04 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫