关于python中cv2.inRange函数参数的分析

这篇文章主要是想搞清楚限定值的参数lowerbarray和upperbarray的详细设定

文章最后得出结论限定值的三个参数为[B, G, R]对应颜色的数值

函数体:

resultarray = cv2.inRange(src, lowerbarray, upperbarray[, dst]    ) ->    dst

一、函数参数解析

保存的图片数组 = 函数名称(源图片, 颜色下限数组,颜色上限数组[输出数组(一般不用)])

输出的图片为二值化图只有黑白两种颜色

官方文档

关于python中cv2.inRange函数参数的分析

假设:颜色上限为180,颜色下限为50,图片颜色有40, 80,200

图片颜色40 < 颜色下限50 < 图片颜色80 < 颜色上限180 < 图片颜色 200

图片颜色40改成0就是黑色,图片颜色80改成255就是白色,图片颜色200改成0就是黑色

颜色下限到颜色上限之间的值改为255,其余的都改为0

二、代码验证

先用画图工具新建一张单色红色RGB图片 R:254, G:0, B:0

关于python中cv2.inRange函数参数的分析

代码为

import  numpy as np #导入numpy创建数组
import cv2 #导入OPENCV
img = cv2.imread('2.bmp') #读取图片
print(img) #打印图片数组
low1 = np.array([0, 0, 0]) #设置第一组对比数组下限
low2 = np.array([0, 0, 0]) #设置第二组对比数组下限
up1 = np.array([0, 0, 255]) #设置第一组对比数组上限
up2 = np.array([0, 0, 254]) #设置第二组对比数组上限
img2 = cv2.inRange(img, low1, up1) #生成第一张对比图片
img3 = cv2.inRange(img, low2, up2) #生成第二张对比图片
cv2.imshow("img", img)  #显示原图
cv2.imshow("img2", img2) #显示第一张对比图片
cv2.imshow("img3", img3) #显示第二张对比图片
cv2.waitKey(0) #图片显示等待

CV2导入的图片颜色模式为BGR,所以在这里设置颜色上限为B:0 G:0 R:255/254

(此处图片分析BGR模式,未转换为HSV模式)

然后我们运行代码查看生成的图片

原图片BGR数组为

关于python中cv2.inRange函数参数的分析

生成对比图

关于python中cv2.inRange函数参数的分析

原图片单色

B:0G:0 R:254

第一组颜色下限为:B:0 G:0 R:0

第一组颜色上限为:B:0 G:0 R:255

下限:0 < 图片颜色:254

Original: https://blog.csdn.net/weixin_40071463/article/details/126672539
Author: 雪域山猫
Title: 关于python中cv2.inRange函数参数的分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/703689/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球