颜色算子机器视觉

1. 实验目的

本实验旨在探究图像处理中的颜色提取算法,通过使用RGB颜色空间,实现对图像中红色、绿色和蓝色三种颜色的提取,并将提取结果展示出来。

2. 实验原理

RGB颜色空间是将颜色表示为红色(R)、绿色(G)和蓝色(B)三种基本颜色的混合。在RGB颜色空间中,每个像素点由三个分量值来表示,分别对应红、绿、蓝三种颜色的强度。颜色提取的原理是根据设定的颜色阈值范围,将图像中符合条件的像素点提取出来。

3. 实验步骤

  1. 读取图像:使用OpenCV的imread()函数读取待处理的图像文件。

  2. 转换颜色空间:将图像的颜色空间从BGR转换为RGB,以便进行颜色提取操作。

  3. 定义颜色阈值:根据实验要求,分别定义红色、绿色和蓝色的阈值范围。

  4. 颜色提取:利用OpenCV的inRange()函数根据设定的颜色阈值提取对应颜色的像素点。

  5. 处理提取结果:将提取的颜色与原始图像相乘,提取出对应颜色的部分。

  6. 结果展示:将提取结果展示出来,并将非零值的像素点设置为白色。

4. 实验代码

import cv2
import numpy as np

# 读取图片
image = cv2.imread('RGB4.png')

# 转换颜色空间为RGB
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 定义红色、绿色和蓝色的阈值
red_lower = np.array([0, 0, 100])
red_upper = np.array([100, 100, 255])

green_lower = np.array([0, 100, 0])
green_upper = np.array([100, 255, 100])

blue_lower = np.array([100, 0, 0])
blue_upper = np.array([255, 100, 100])

# 使用inRange函数进行颜色提取
mask_blue = cv2.inRange(image_rgb, red_lower, red_upper)
mask_green = cv2.inRange(image_rgb, green_lower, green_upper)
mask_red = cv2.inRange(image_rgb, blue_lower, blue_upper)

# 将提取的颜色与原始图像相乘,提取对应颜色的部分
result_blue = cv2.bitwise_and(image_rgb, image_rgb, mask=mask_red)
result_green = cv2.bitwise_and(image_rgb, image_rgb, mask=mask_green)
result_red = cv2.bitwise_and(image_rgb, image_rgb, mask=mask_blue)

# 将非零值设置为白色
result_blue[mask_red != 0] = [255, 255, 255]
result_green[mask_green != 0] = [255, 255, 255]
result_red[mask_blue != 0] = [255, 255, 255]

# 分别显示提取的红色、绿色和蓝色的部分
cv2.imshow('Red', result_blue)
cv2.imshow('Green', result_green)
cv2.imshow('Blue', result_red)

# 等待退出
cv2.waitKey(0)
cv2.destroyAllWindows()

5. 实验结果

实验结果显示了成功提取出图像中红色、绿色和蓝色三种颜色的部分,并将提取结果展示在了单独的窗口中,非零值的像素点设置为白色。

RGB1

RGB1颜色识别效果

RGB2

RGB2颜色识别结果

RGB3

RGB3颜色识别结果

RGB4

RGB4颜色识别效果

6. 结论

通过本实验,我们深入了解了图像处理中的颜色提取算法,实现了对图像中红色、绿色和蓝色三种颜色的提取。这一技术在实际应用中具有广泛的用途,例如图像分割、物体识别等领域,为图像处理技术的应用提供了有力支持。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值