这篇文章主要是想搞清楚限定值的参数lowerbarray和upperbarray的详细设定
文章最后得出结论限定值的三个参数为[B, G, R]对应颜色的数值
函数体:
resultarray = cv2.inRange(src, lowerbarray, upperbarray[, dst] ) -> dst
一、函数参数解析
保存的图片数组 = 函数名称(源图片, 颜色下限数组,颜色上限数组[输出数组(一般不用)])
输出的图片为二值化图只有黑白两种颜色
官方文档
假设:颜色上限为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
代码为
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数组为
生成对比图
原图片单色
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/
转载文章受原作者版权保护。转载请注明原作者出处!