相关疑难解决方法(0)

使用`cv :: inRange`(OpenCV)为颜色检测选择正确的上下HSV边界

我有一个咖啡罐的图像,橙色的盖子位置,我想找到.就这个图片.

gcolor2实用程序显示盖子中心的HSV为(22,59,100).问题是如何选择颜色的限制呢?我尝试了min =(18,40,90)和max =(27,255,255),但是出乎意料结果

这是Python代码:

import cv

in_image = 'kaffee.png'
out_image = 'kaffee_out.png'
out_image_thr = 'kaffee_thr.png'

ORANGE_MIN = cv.Scalar(18, 40, 90)
ORANGE_MAX = cv.Scalar(27, 255, 255)
COLOR_MIN = ORANGE_MIN
COLOR_MAX = ORANGE_MAX

def test1():
    frame = cv.LoadImage(in_image)
    frameHSV = cv.CreateImage(cv.GetSize(frame), 8, 3)
    cv.CvtColor(frame, frameHSV, cv.CV_RGB2HSV)
    frame_threshed = cv.CreateImage(cv.GetSize(frameHSV), 8, 1)
    cv.InRangeS(frameHSV, COLOR_MIN, COLOR_MAX, frame_threshed)
    cv.SaveImage(out_image_thr, frame_threshed)

if __name__ == '__main__':
    test1()
Run Code Online (Sandbox Code Playgroud)

opencv hsv color-detection

67
推荐指数
7
解决办法
17万
查看次数

如何在Python-OpenCV中使用`cv2.inRange`检测两种不同的颜色?

如何定义两种不同颜色的"下"和"上"范围,例如红色和蓝色(因为红色和蓝色在HSV颜色中彼此不相邻)

这个属于红色:

lower_red = np.array([160,20,70])
upper_red = np.array([190,255,255])
Run Code Online (Sandbox Code Playgroud)

这个属于蓝色:

lower_blue = np.array([101,50,38])
upper_blue = np.array([110,255,255])
Run Code Online (Sandbox Code Playgroud)

我尝试使用if条件将它们组合起来或制作自己的功能但不起作用,你们能告诉我解决方案吗?

P/s:Python中的OpenCV

python opencv

9
推荐指数
1
解决办法
2万
查看次数

如何定义阈值以仅检测图像中的绿色对象:Opencv

我只是想从自然环境中捕获的图像中仅检测绿色物体.如何定义它?因为在这里我要通过阈值让我们说'x',通过使用这个x我想只获得一种颜色的绿色对象(白色)其他必须出现在另一种颜色(黑色)请指导我做这个.提前致谢.

python opencv image-processing threshold

8
推荐指数
3
解决办法
3万
查看次数

如何使用opencv创建LAB颜色图表?

我正在开发一个项目,以识别某些斑点的颜色为起点,为此,我正在绘制带有这些图像RGB颜色的3D图形。由此,我确定了这些斑点的一些醒目的颜色,如下所示。

在此处输入图片说明

颜色是理解的主观性和解释性的问题。此步骤的目的是进行识别,以便您可以找到颜色的图案而不会造成差异。因此,我一直在互联网上搜索,为此,建议使用颜色空间L * a * b *

有了这个,有人可以帮我获得带有LAB颜色的图表,还是指出另一种更好地对这些斑点的颜色进行分类的方法?

用于绘制3D图形的代码

import numpy as np
import mpl_toolkits.mplot3d.axes3d as p3
import matplotlib.pyplot as plt
import colorsys
from PIL import Image

# (1) Import the file to be analyzed!
img_file = Image.open("IMD405.png")
img = img_file.load()

# (2) Get image width & height in pixels
[xs, ys] = img_file.size
max_intensity = 100
hues = {}

# (3) Examine each pixel in the image file
for x in xrange(0, xs):
  for y in xrange(0, …
Run Code Online (Sandbox Code Playgroud)

python opencv graph image-processing

3
推荐指数
1
解决办法
631
查看次数