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变量不能以数字打头详解
Jul 06 Python
Python实现简单的获取图片爬虫功能示例
Jul 12 Python
Python数据结构与算法之图结构(Graph)实例分析
Sep 05 Python
Python random模块用法解析及简单示例
Dec 18 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
详解python3中tkinter知识点
Jun 21 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
Keras中的多分类损失函数用法categorical_crossentropy
Jun 11 Python
python能自学吗
Jun 18 Python
详解解决jupyter不能使用pytorch的问题
Feb 18 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
Content-type 的说明
2006/10/09 PHP
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP文件下载类
2006/12/06 PHP
学习YUI.Ext第五日--做拖放Darg&Drop
2007/03/10 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
火车票抢票python代码公开揭秘!
2018/03/08 Python
对python中的logger模块全面讲解
2018/04/28 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Python发展史及网络爬虫
2019/06/19 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
python实现文字版扫雷
2020/04/24 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/09/18 面试题
幼儿园老师辞职信
2014/01/20 职场文书
股份转让协议书
2014/04/12 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript
Python 批量下载阴阳师网站壁纸
2021/05/19 Python