网站首页 > 技术文章 正文
在进行图像处理的时候,有时需要将图像中的物体抠图出来,传统的做法可以使用PS、Excel等方法做。今天我们使用opencv代码的方式实现图像抠图。
用到的函数主要有:cv.inRange(src, lowerb, upperb),cv.bitwise_not(),cv.bitwise_and()。
- cv.inRange(src, lowerb, upperb):函数的功能是根据像素的范围进行过滤,把符合像素范围的保留,赋值0,黑色;不符合的赋值255,白色。
src:需要处理的图像
lowerb:最小像数值
upperb:最大像素值
cv.bitwise_not(),cv.bitwise_and()这两个函数的说明。详见:图像位级运算
以下图为例,抠出图片中的狗狗。
话不多说,直接上代码:
先附上HSV颜色表:
# -*-coding:utf-8-*-
"""
File Name: color_space_conversion.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2 as cv
import numpy as np
def image_matting(image_path: str):
img = cv.imread(image_path, cv.IMREAD_COLOR)
cv.imshow('input', img)
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
cv.imshow('hsv', hsv)
# 根据像素的范围进行过滤,把符合像素范围的保留,不符合的赋值0或者255
# 根据hsv颜色表找出最大值和最小值
mask = cv.inRange(hsv, (35, 43, 46), (77, 255, 255))
cv.imshow('cc', mask)
mask = cv.bitwise_not(mask)
# 只在mask区域做与运算
result = cv.bitwise_and(img, img, mask=mask)
cv.imshow('mask', mask)
cv.imshow('result', result)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == '__main__':
path = 'images/dog.jpg'
image_matting(path)
效果展示:成功地将这只狗狗抠出来了。
想获取更多计算机视觉知识,请关注微信公众号 “AI与计算机视觉”。
- 上一篇: 计算机视觉系列_2、OpenCV基础讲解
- 下一篇: C# 使用OpenCV库把多张图片合成视频
猜你喜欢
- 2024-12-09 基于DeepFace和opencv,识别并分析视频中人物的面部表情
- 2024-12-09 基于OpenCV的相机捕捉视频进行人脸检测--米尔NXP i.MX93开发板
- 2024-12-09 OpenCV之形态学操作(膨胀、腐蚀、开运算、闭运算、顶帽、黑帽)
- 2024-12-09 OpenCV入门第一课
- 2024-12-09 [常用工具] OpenCV获取网络摄像头实时视频流
- 2024-12-09 用 Python 和 OpenCV 创建视频编辑器
- 2024-12-09 半小时教你手搓AI视频通话,还有懒人版代码已开源
- 2024-12-09 C# 使用OpenCV库把多张图片合成视频
- 2024-12-09 计算机视觉系列_2、OpenCV基础讲解
- 2024-12-09 【AI&ML】如何使用Google Colaboratory进行视频处理
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)