当前位置: 首页 > news >正文

设计师搜图网站百度站长号购买

设计师搜图网站,百度站长号购买,b站推广2024mmm已更新,江苏专业网站建设费用使用 OpenCV 和 NumPy 进行图像处理:HSV 范围筛选实现PS抠图效果 在计算机视觉和图像处理领域,OpenCV 是一个非常强大的库,能够帮助我们执行各种图像操作。在这篇博客中,我们将通过一个简单的示例演示如何使用 OpenCV 和 NumPy 来…

使用 OpenCV 和 NumPy 进行图像处理:HSV 范围筛选实现PS抠图效果

在计算机视觉和图像处理领域,OpenCV 是一个非常强大的库,能够帮助我们执行各种图像操作。在这篇博客中,我们将通过一个简单的示例演示如何使用 OpenCV 和 NumPy 来进行 HSV(色相、饱和度、明度)范围筛选,以提取图像中的特定颜色区域。

1. 创建虚拟环境

新建文件夹, 并在文件夹中创建虚拟环境,可以使用Vscode打开文件夹, 然后在终端中输入以下命令:

python -m venv venv

2. 激活虚拟环境

在终端中输入以下命令:

venv\Scripts\activate

3. 安装依赖

在终端中输入以下命令:

pip install opencv-python

4. 代码实现

首先,我们需要导入所需的库:

import cv2
import numpy as np

接下来,我们定义一个函数 inrange_demo,该函数接收一幅图像作为参数,并执行以下步骤:

1. 将图像从 BGR 转换为 HSV

OpenCV 默认使用 BGR(蓝、绿、红)颜色空间,因此我们首先需要将图像转换为 HSV 颜色空间,以便更容易地进行颜色范围筛选。

hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2.imshow("hsv", hsv)
cv2.waitKey(0)

2. 创建 HSV 范围的掩膜

我们使用 cv2.inRange 函数来创建一个掩膜,该掩膜只保留在指定 HSV 范围内的像素。这里的范围是 (35, 43, 46)(77, 255, 255),这通常对应于绿色的颜色范围。

mask = cv2.inRange(hsv, (35, 43, 46), (77, 255, 255))
cv2.imshow("mask", mask)
cv2.waitKey(0)

3. 创建黑色背景

我们创建一个与原始图像相同大小的黑色背景,以便后续操作。

redback = np.zeros(image.shape, image.dtype)

4. 反转掩膜

通过 cv2.bitwise_not 函数,我们可以反转掩膜,以便选择不在指定颜色范围内的区域。

mask_inv = cv2.bitwise_not(mask)
cv2.imshow("inverted mask", mask_inv)
cv2.waitKey(0)

5. 确保掩膜是三通道

为了将掩膜应用于原始图像,我们需要将反转后的掩膜扩展到三通道。

mask_inv_3d = mask_inv[:, :, np.newaxis]

6. 应用掩膜并显示结果

最后,我们使用 np.where 函数将原始图像与黑色背景结合,显示出感兴趣区域。

redback[:] = np.where(mask_inv_3d == 255, image, redback)
cv2.imshow("roi区域", redback)

示例用法

在函数定义之后,我们可以通过以下代码读取一幅图像并调用 inrange_demo 函数:

image = cv2.imread("D:\\images\\1.png")
inrange_demo(image)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像素材

在这里插入图片描述

实现效果

在运行代码后,你将看到以下图像:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

以上代码演示了如何使用 OpenCV 和 NumPy 进行基本的图像处理,特别是 HSV 范围筛选。通过这种方法,我们可以提取图像中感兴趣的颜色区域,并在黑色背景上显示它们。这种技术在物体检测和识别、图像分割等应用中非常有用。

扩展

使用白色背景显示图像特定区域

import cv2
import numpy as npdef inrange_demo(image):# Convert the image from BGR to HSVhsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)cv2.imshow("hsv", hsv)cv2.waitKey(0)# Create a mask for the specified HSV rangemask = cv2.inRange(hsv, (35, 43, 46), (77, 255, 255))cv2.imshow("mask", mask)cv2.waitKey(0)# Create a white backgroundredback = np.zeros(image.shape, dtype=image.dtype)whiteback=redback+255# Invert the maskmask_inv = cv2.bitwise_not(mask)# Show the inverted maskcv2.imshow("inverted mask", mask_inv)cv2.waitKey(0)# Ensure mask_inv is 3-channel by expanding its dimensionsmask_inv_3d = mask_inv[:, :, np.newaxis]# Copy the original image to the background where the mask is appliedwhiteback[:] = np.where(mask_inv_3d == 255, image, whiteback)# Show the region of interestcv2.imshow("roi区域", whiteback)# Example usage:
image = cv2.imread("D:\\images\\1.png")
inrange_demo(image)
cv2.waitKey(0)
cv2.destroyAllWindows()

实现效果

在这里插入图片描述

这里特别提供一下HSV颜色取值范围,建议收藏一下:

HSV 颜色取值范围

在这里插入图片描述

希望这篇博客对你理解图像处理有所帮助!

http://www.fp688.cn/news/145342.html

相关文章:

  • 郑州网站制作公司排名企业营销策划及推广
  • 做企业网站哪里找百度关键词推广可以自己做吗
  • 网站建设捌金手指花总十四优化关键词怎么做
  • 阿里云网站如何建设视频营销策划方案怎么做
  • 你好南京网站免费行情网站的推荐理由
  • 长宁区网站建设网页制品牌推广方式
  • 深圳婚庆网站建设代写文章多少钱
  • 制作网站的过程是对信息的中国最大的企业培训公司
  • 深圳网站建设价格多少做关键词优化的公司
  • 电子商务网站开发技术百度seo如何做
  • 生鲜b2c网站建设规划书深圳高端网站建设公司
  • 盘锦做网站哪家好游戏推广员怎么做
  • 网站上传用什么软件做视频格式外贸网站建站和推广
  • 营销型网站免费模板cfa一级看多久两分钟
  • 高端网站建设公司报价旺道seo营销软件
  • 深信服对单一网站做限速模板建站平台
  • 做医学网站真正免费的网站建站平台推荐
  • 建设厅网站首页sem推广什么意思
  • 男科医院网站建设策略南宁网络推广有限公司
  • 武汉吧嗒科技股份公司惠州百度seo
  • 汕头网站公司免费域名注册查询
  • 如何创建私人网站哈尔滨企业网站模板建站
  • 梅州网站建设公司品牌推广公司
  • 网站做seo第一步深圳品牌seo
  • 医疗网站被黑后可以做排名台州网站建设优化
  • 网站名称 注册百度入口网站
  • 做网站需要准备的素材优化设计七年级上册语文答案
  • 网站建设需要代码专业黑帽seo推广
  • 丹东建设银行网站百中搜
  • 视频拍摄公司seo岗位是什么意思