扣图(图像色彩空间转换)

利用图像色彩空间转换,进行扣图。

import cv2
import numpy

#创建图像
img=cv2.imread('jiuXinNai.jpg',cv2.IMREAD_REDUCED_COLOR_2)

#扣图1,扣除黄色
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #色彩空间转换
kou_part1=cv2.inRange(hsv,(26,43,46),(34,255,255))  #取出图像中黄色的部分,kou_part1表示黄色图像
cv2.bitwise_not(kou_part1,kou_part1)    #将kou_part1取反,就可以得到非黄色部分的一个图像
img_kou1=cv2.bitwise_and(img,img,mask=kou_part1)    #将原图像和非黄色部分图像进行逻辑与运算,就可以抠出没有黄色的图像

#抠图2,将扣图1中的图像再抠除橙色
kou_part2=cv2.inRange(hsv,(11,43,46),(25,255,255))  #取出图像中橙色的部分,kou_part2表示橙色图像
cv2.bitwise_not(kou_part2,kou_part2)    #将kou_part2取反,就可以得到非橙色部分的一个图像
img_kou2=cv2.bitwise_and(img_kou1,img_kou1,mask=kou_part2)  #将图像和非橙色部分图像进行逻辑与运算,就可以抠出没有橙色的图像

#显示图像
cv2.imshow('img',img)

cv2.imshow('img_kou1',img_kou1)
cv2.imshow('img_kou2',img_kou2)


#保存图像
cv2.imwrite("D:/img.jpg",img)
cv2.imwrite("D:/img_kou1.jpg",img_kou1)
cv2.imwrite("D:/img_kou2.jpg",img_kou2)


cv2.waitKey(0)
cv2.destroyAllWindows()

首先是从网上随便找来的一张动漫图片,主要目的是把玖辛奈从图片里面扣出来。

 一眼看过去,动漫人物背景应该有三种背景颜色:黄色、橙色、白色,所以第一个先扣除黄色,得到下面的图像。

扣除了黄色之后,再扣除橙色,就可以得到下面的图像。

 

 而上面就是最终的扣图效果了,而为什么不扣除白色呢?因为动漫人物身上也有白色,如果把白色消去的话,那动漫人物的脸和衣服上的白色也会被消去,就达不到扣图的效果了。

比如会出现这种情况

我已经扣除了白色部分了,但是好像还是没有清理干净, 另外一部分是什么颜色,我就不太清楚了。

最后是inRange的取值表。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值