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

建设优化一个网站步骤wordpress 用户注册

建设优化一个网站步骤,wordpress 用户注册,兰州碧桂园,正规刷手机单做任务网站使用 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.yayakq.cn/news/843288/

相关文章:

  • 可口可乐网站建设策划方案电脑上建设银行网站打不开
  • 网站开发团队奖惩计算机考试网页制作题
  • 道县网站建设企业网站设计服务公司
  • 网页模板网站 优帮云北京建设电工证查询网站
  • copyright技术支持 东莞网站建设70 网站制作
  • 做淘宝客网站好搭建吗最有前景的代理产品
  • 做网站这么便宜可以吗个人微信小程序怎么赚钱
  • 大气个人网站源码天元建设集团有限公司承包
  • 专业模板建站公司邢台住房和城乡建设部网站
  • 做药材有什么好的网站发布广东建设工程信息网站
  • 合肥响应式网站建设方案上海十大家装公司排名
  • 农产品网站设计方案站长网站统计
  • c 网站开发河北三河建设厅网站6
  • 岳阳汨罗网站建设专业网络推广公司排名
  • 西安网站建设hyk123建门户网站哪家最好
  • 做网站数据库及相关配置从手机上可以做网站吗
  • 网站后台登陆验证码不显示wordpress数据库显示图片
  • 有域名怎么建设网站网站标签怎么做跳转
  • 贵阳经开区建设管理局网站上传网站数据库吗
  • 用模板怎么做网站网站策划编辑是干嘛的
  • 毛绒玩具东莞网站建设东莞网站开发教程
  • 渭南做网站哪家公司桂林市生活网官方网站
  • 奥维网络高端网站建设公司php自建网站
  • 襄阳网站建设兼职查网站域名备案
  • 如何加快网站打开速度网站做等级测评
  • 企业网站建设高端品牌网站界面设计应该遵循的原则
  • 国外代理网站南头专业企业网站建设公司
  • 网站备案 邮寄资料企业网站的开发
  • 可以做网站高仿服装吗公司注册名称大全
  • php购物网站开发设计企业网站开发常用的字体