标签: hsv

如何比较两种颜色的相似性/差异性

我想设计一个程序,可以帮助我评估5种预定义的颜色,其中一种颜色更接近可变颜色,以及百分比.问题是我不知道如何逐步手动完成.所以想到一个程序就更难了.

更多细节:颜色来自具有不同颜色的凝胶管的照片.我有5个不同颜色的管子,每个都代表5个级别中的1个.我想拍摄其他样品的照片,并在计算机上通过比较颜色来评估样品属于哪个级别,我想知道这也是近似的百分比.我想要一个类似这样的程序:http://www.colortools.net/color_matcher.html

如果你能告诉我采取什么步骤,即使它们是让我思考和手动做的事情.这将非常有帮助.

algorithm rgb compare colors hsv

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

使用`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万
查看次数

如何将RGB颜色更改为HSV?

如何将RGB颜色更改为HSV?在C#语言中.我没有任何外部库搜索非常快的方法.

c# rgb colors hsv

63
推荐指数
4
解决办法
10万
查看次数

Javascript准确地将HSB/HSV颜色转换为RGB

我需要准确地将HSB转换为RGB,但我不知道如何解决将小数转换为整数而不进行舍入的问题.这是我在colorpicker库中使用的当前函数:

HSBToRGB = function (hsb) {

    var rgb = { };
    var h = Math.round(hsb.h);
    var s = Math.round(hsb.s * 255 / 100);
    var v = Math.round(hsb.b * 255 / 100);

        if (s == 0) {

        rgb.r = rgb.g = rgb.b = v;
        } else {
        var t1 = v;
        var t2 = (255 - s) * v / 255;
        var t3 = (t1 - t2) * (h % 60) / 60;

            if (h == 360) h = 0;

                if …
Run Code Online (Sandbox Code Playgroud)

javascript rgb converter hsv hsb

39
推荐指数
4
解决办法
4万
查看次数

HSB vs HSL vs HSV

我正在将Color类作为c ++中非常基本的图形API的一部分.所以我决定看一下微软的.NET框架,发现他们的Color类有HSB的功能.

然后我开始研究,以确定我是否应该在课堂上提供HSB,HSL或HSV或所有这些.

所以,我有3个关于HSB,HSL,HSV的问题:

  1. HSB与HSL相同吗?

  2. 如果没有,为什么没有HSBL甚至HSBLV?

  3. 我发现有很多不同的计算这些值的方法,有人能告诉我最快的吗?

c++ hsl colors hsv hsb

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

从OpenGL GLSL中的RGB到HSV

我需要从RGB颜色空间传递到HSV ..我在互联网上搜索并发现了两种不同的实现,但这些给了我不同的结果:

A:

precision mediump float;
 vec3 rgb2hsv(float r, float g, float b) {

     float h = 0.0;
     float s = 0.0;
     float v = 0.0;

     float min = min( min(r, g), b );
     float max = max( max(r, g), b );
     v = max;               // v

     float delta = max - min;

     if( max != 0.0 )
         s = delta / max;       // s
     else {
         // r = g = b = 0       // s = 0, v …
Run Code Online (Sandbox Code Playgroud)

opengl rgb glsl hsv

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

如何用GLSL改变纹理的色调?

有没有办法使用GLSL(片段着色器)有效地改变2D OpenGL纹理的色调?

有人有一些代码吗?

更新:这是user1118321建议的代码:

uniform sampler2DRect texture;
const mat3 rgb2yiq = mat3(0.299, 0.587, 0.114, 0.595716, -0.274453, -0.321263, 0.211456, -0.522591, 0.311135);
const mat3 yiq2rgb = mat3(1.0, 0.9563, 0.6210, 1.0, -0.2721, -0.6474, 1.0, -1.1070, 1.7046);
uniform float hue;

void main() {

vec3 yColor = rgb2yiq * texture2DRect(texture, gl_TexCoord[0].st).rgb; 

float originalHue = atan(yColor.b, yColor.g);
float finalHue = originalHue + hue;

float chroma = sqrt(yColor.b*yColor.b+yColor.g*yColor.g);

vec3 yFinalColor = vec3(yColor.r, chroma * cos(finalHue), chroma * sin(finalHue));
gl_FragColor    = vec4(yiq2rgb*yFinalColor, 1.0);
}
Run Code Online (Sandbox Code Playgroud)

这是与参考相比的结果:

在此输入图像描述

我试图在里面用Q切换I,但即使在0°左右,结果也是错误的

你有什么提示吗? …

opengl glsl filter hsv hue

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

PHP中的RGB到HSV

在PHP中,将RGB三元组转换为HSV值的最简单方法是什么?

php rgb image colors hsv

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

使用python opencv跟踪白色

我想使用webcam和python opencv跟踪白色.我已经有了跟踪蓝色的代码.

_, frame = cap.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

# define range of blue color in HSV
lower_blue = np.array([110,100,100])
upper_blue = np.array([130,255,255])

#How to define this range for white color


# Threshold the HSV image to get only blue colors
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# Bitwise-AND mask and original image
res = cv2.bitwise_and(frame,frame, mask= mask)

cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
Run Code Online (Sandbox Code Playgroud)

我应该给出什么作为跟踪白色的下限和上限!! ?? 我尝试改变价值观,但我得到了其他颜色,但白色没有运气!

是HSV值还是BGR值指定为下限和上限???

PS:我必须把最后的结果作为二进制图像进行进一步处理!!

请帮我 !!!

python opencv hsv computer-vision color-tracking

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

为什么opencv中的色调范围为0-180°

任何人都可以向我解释为什么OpenCV中HSV图像的色调值仅为180°而不是整个360°?

我发现OpenCV使用的是一个180°的圆柱体,但我无法想象这样的圆柱体.

提前致谢!
Ĵ

opencv hsv

20
推荐指数
2
解决办法
4万
查看次数