pythonopencv图像处理实例(pythonopencv获取图像)

技术Python+OpenCV数字图像处理中如何进行ROI区域的提取本篇文章给大家分享的是有关Python+OpenCV数字图像处理中如何进行ROI区域的提取,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章

本文是关于如何在Python OpenCV数字图像处理中提取ROI区域的。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。让我们和边肖一起看看。

00-1010:首先通过cv.cvtColor()函数将原始RGB彩色图像转换为hsv颜色空间中的图像,然后通过cv.inRange()函数获取ROI的Mask,最后通过cv.bitwise()函数提取ROI。

00-1010 (1) cv.cvtcolor (img,cv.color _ bgr2hsv)功能

Img是要进行色彩空间转换的原始图像。

简历。COLOR_BGR2HSV表示将原来的RGB颜色空间转换为HSV颜色空间。

(2)简历。inrange (HSV,(h _ min,s _ min,v _ min),(h _ max,s _ max,v _ max))函数

Cv.inRange函数可以通过设置不同的H、S和v的最小和最大阈值来获得不同颜色的二进制掩码映射。下图显示了每种颜色的阈值表:

Python+OpenCV数字图像处理中如何进行ROI区域的提取

(3)简历。bitwise _ and (img1、img2、mask)、cv.bitwise_or(img1、img2、mask)和cv.bitwise_not(img)

第一个函数是按位and运算函数,其中img1和img2在掩码区域进行按位AND运算,R、G、B G和B分量分别进行按位。第二个函数是按位or运算函数,其中img1和img2在掩码区按位or运算,R、G、B G和B分量分别按位or运算。第三个函数是按位求逆运算函数,分别对R、G、B G、B分量中的img进行按位求逆运算。

(4)cv.add(img1,img2)功能

添加img1和img2,img1和img2的大小必须相同。

00-1010原始图纸如下:

Python+OpenCV数字图像处理中如何进行ROI区域的提取

如图,卡通人物要从图中提取出来,粘贴在其他背景上。

1、实现原理

src=cv . imread(' person . jpg ')

Python+OpenCV数字图像处理中如何进行ROI区域的提取

00-1010 hsv=cv。cvtcolor (src,cv。color _ bgr2hsv) #到hsv颜色样式

Mask=cv。inRange (HSV,(35,43,46),(99,255,255)) #使用inRange生成掩码。

Python+OpenCV数字图像处理中如何进行ROI区域的提取

因为背景是绿色的,所以可以提取绿色背景的蒙版。从上表中,可以找出绿色和青色的值。设置好参数后,可以得到蒙版(白色区域为蒙版区域):

注意:这里得到的蒙版是背景蒙版,我们需要得到角色的蒙版。

2、使用的函数简述

字符的掩码区域(白色区域)可以通过逻辑“非”运算否定获得:

掩码=cv.bitwise_not(掩码)

cv.imshow('mask2 ',mask)Python+OpenCV数字图像处理中如何进行ROI区域的提取

3、代码实现过程

原始图像和原始图像可以通过掩模区域中的逻辑“与”运算获得。

rush:py;">timg1 = cv.bitwise_and(src, src, mask=mask)
cv.imshow('timg1', timg1)

Python+OpenCV数字图像处理中如何进行ROI区域的提取

以上操作即提取了图像中的ROI(卡通人)区域,下面介绍将介绍将提取出来的图贴到其他背景上。

(5)新建一张与原始图一样大小的蓝色的背景图

background = np.zeros(src.shape, src.dtype)
background[:,:,0] = 255

(6)得到蓝色背景的mask

mask = cv.bitwise_not(mask)
dst = cv.bitwise_or(timg1, background, mask=mask)
cv.imshow('dst1', dst)

Python+OpenCV数字图像处理中如何进行ROI区域的提取

(7)将人物图贴到蓝色背景上

dst = cv.add(dst, timg1)
cv.imshow('dst2', dst)

Python+OpenCV数字图像处理中如何进行ROI区域的提取

4、整体代码 

import cv2 as cv
import numpy as np

src = cv.imread('person.jpg')
cv.imshow('src', src)
hsv = cv.cvtColor(src, cv.COLOR_BGR2HSV)       # 转换成hsv色彩风格
mask = cv.inRange(hsv, (35, 43, 46), (99, 255, 255))        # 利用inRange产生mask
cv.imshow('mask1', mask)
cv.imwrite('mask1.jpg', mask)

# 获取mask
mask = cv.bitwise_not(mask)
cv.imshow('mask2', mask)
cv.imwrite('mask2.jpg', mask)
timg1 = cv.bitwise_and(src, src, mask=mask)
cv.imshow('timg1', timg1)
cv.imwrite('timg1.jpg', timg1)

# 生成背景
background = np.zeros(src.shape, src.dtype)
background[:,:,0] = 255

# 将人物贴到背景中
mask = cv.bitwise_not(mask)
dst = cv.bitwise_or(timg1, background, mask=mask)
cv.imshow('dst1', dst)
cv.imwrite('dst1.jpg', dst)

dst = cv.add(dst, timg1)
cv.imshow('dst2', dst)
cv.imwrite('dst2.jpg', dst)

cv.waitKey(0)
cv.destroyAllWindows()

以上就是Python+OpenCV数字图像处理中如何进行ROI区域的提取,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/150315.html

(0)

相关推荐

  • 避免,自媒体视频如何避免侵权

    技术避免,自媒体视频如何避免侵权首先要对于我们自媒体来说,侵权的范围一般来说就是三类避免:视频类,图片类,字体配乐类。独角shou就因为字体侵权被索赔十几万,损失惨重。不过知名度不高的账号的话,一般不会收到音乐字体类的侵

    生活 2021年10月21日
  • 怎么解决nginx php-cgi 自动关闭问题

    技术怎么解决nginx php-cgi 自动关闭问题这篇文章主要介绍“怎么解决nginx php-cgi 自动关闭问题”,在日常操作中,相信很多人在怎么解决nginx php-cgi 自动关闭问题问题上存在疑惑,小编查阅

    攻略 2021年10月26日
  • 原来有openwrt怎么升级固件(openwrt升级固件时间15分钟)

    技术OpenWRT如何升级固件小编给大家分享一下OpenWRT如何升级固件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! OpenWRT

    攻略 2021年12月18日
  • 粉底液怎么用具体步骤,粉底液如何使用

    技术粉底液怎么用具体步骤,粉底液如何使用粉底液的使用可以用手也可以用粉扑粉底液怎么用具体步骤。 步骤一:先把粉底液涂抹在面部额头、下巴、面颊、鼻子五个点上,如果哪个部位毛孔较粗大,那么再取少量粉底液轻轻拍打,使粉底液融入

    生活 2021年10月22日
  • sqlite源码分析博客(sqlite源码大全)

    技术SQLite源码仓库的示例分析这篇文章给大家分享的是有关SQLite源码仓库的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1编译(compiling)优先创建目录存放生成的目标文

    攻略 2021年12月18日
  • 免费刷粉网站推广,2021免费抖音刷粉工具?

    技术免费刷粉网站推广,2021免费抖音刷粉工具?抖音刷赞的妙用,抖音刷赞有那些用处,随着抖音的火爆,现在入住抖音的用户那是相当多呀,入住抖音的用户多了,当然抖音内部的竞争也就大了,有部分抖音新人没有人气,没有名气,响应的

    测评 2021年11月9日