草庐IT

RGB转HSV

全部标签

c++ - OpenCV:对 RGB 图像应用操作(拆分+合并)

抱歉,如果这个问题太基础了,我是OpenCV的新手。我想对RGB图像应用直方图均衡化。HE只适用于单channel,所以我想我必须将图像分成3个不同的channel,将HE应用于每个channel,然后将它们合并在一起以形成输出均衡图像。所以我就这样做了,这是我真正认为应该有效的程序:#include#include#include#includeintmain(intargc,char*argv[]){IplImage*img=cvLoadImage("/Users/Documents/red.jpg");//LoadimagefilecvNamedWindow("Trans-in"

c++ - 颜色的浮点 RGB 值与 ubyte RGB 值

(ubyte是无符号字符)例如,在颜色类中使用浮点值作为RGB值有什么意义?它提供更高的准确性吗?空间呢?使用float与ubyte的性能优势/障碍是什么? 最佳答案 临:做数学时不需要与float相互转换在顺序应用多个处理步骤时更准确地保留中间值具有多更大的动态范围和分辨率float是GPU等的自然格式缺点:需要更多存储空间 关于c++-颜色的浮点RGB值与ubyteRGB值,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - 吉尔提升 : convert rgb8_image_t to rgba8_image_t

我对GIL语法有点困惑。我要转换rgb8_image_t到rgba8_image_t并将alphachannel设置为1。有没有内置函数。如果不是如何手动执行此操作? 最佳答案 您想使用boost::gil::copy_and_convert_pixels并在范围内适当匹配color_convert特化。这是一个完整的例子:#include#includenamespaceboost{namespacegil{//DefineacolorconversionruleNBintheboost::gilnamespacetemplate

c++ - cv::Mat 中 cv::Point 的 OpenCV rgb 值

我已经在StackOverflow上查看了不同的问题,但似乎都没有帮助。我想做的很简单:我有一个cv::Point,我需要在cv::Mat中获取该点像素的RGB值这样我就可以将它与存储的RGB值进行比较。现在这应该很容易了,但我已经尝试了1001种不同的方法,但它对我不起作用。请有人帮助我摆脱痛苦!!编辑:下面的两个答案都有效!我是C++的新手,不知道通过cout输出unsignedchar会产生问号!printfoffcourse给出了正确的值!! 最佳答案 这真的很简单。然而,OpenCV的文档擅长隐藏简单的答案。示例代码如下:

c++ - 将 C++ 中的 RGB 值数组转换为图像文件的最简单方法是什么?

我一直在网上寻找一个好的、快速的解决方案,但还没有找到令我满意的东西。看起来它应该是微不足道的——只是对某个库中的函数进行一两次调用,仅此而已——但事实似乎并非如此。libjpeg和libtiff缺乏良好的文档,人们发布的解决方案涉及了解图像的生成方式和编写约50行代码。你们会如何用C++做到这一点? 最佳答案 如果您想要“简单”胜过其他任何东西,请查看stb_image_write.h.这是一个单一的头文件,包括对写入BMP、PNG和TGA文件的支持。每种格式只需调用一次:intstbi_write_png(charconst*f

c++ - 将 Lab 值转换为 opencv 中的 RGB 值

我正在尝试将Lab值转换为其相应的RGB值。我不想将Lab图像转换为RGB图像,而是La和b的一些值。函数cvCvtColor仅适用于图像。谁能告诉我如何做到这一点。谢谢;代码:CvMat*rgb=cvCreateMat(centres->rows,centres->cols,centres->type);cvCvtColor(centres,rgb,CV_Lab2BGR); 最佳答案 我不知道如何在OpenCV中做到这一点,但如果其他事情没问题,我有implementeditinC.请参阅函数color_Lab_to_Linear

c++ - 如何将灰度图像复制到 OpenCV 中的 RGB 图像红色 channel ?

我有两张输入图像,它们是灰度,我正在创建另外一张图像,它是RGB>并且应该在红色channel中包含灰色图像之一,在绿色channel中包含另一个。Matimg,img2;img=imread("above.jpg",CV_LOAD_IMAGE_GRAYSCALE);img2=imread("left.jpg",CV_LOAD_IMAGE_GRAYSCALE);Mat*aboveLeft=newMat(img.rows,img.cols,CV_LOAD_IMAGE_COLOR);intfrom_to[]={0,1};cv::mixChannels(&img,1,aboveLeft,3,

c++ - 使用 RGB 源和 RGBA 叠加实现近乎实时的 CPU 功能,如 glAlphaFunc(GL_GREATER)

延迟是这里最大的问题。我发现尝试通过OpenGL将带有RGBA覆盖的3个1920x1080视频源渲染到单个窗口有限制。我能够渲染两个带叠加层的窗口或3个不带叠加层的窗口,但当引入第三个窗口时,渲染停顿很明显。我认为这个问题是由于过度使用glAlphaFunc()来覆盖RGB视频纹理和基于RGBA的纹理。为了减少过度使用,我的想法是将一些覆盖功能移到CPU中(因为我有很多CPU-双六核至强)。执行此操作的理想位置是将源RGB图像复制到映射的PBO并将RGB值替换为A>0的RGBA叠加层中的值。我尝试过使用英特尔IPP方法,但没有一种方法不涉及多次调用并会导致过多的延迟。我试过直接使用C代

c++ - 如何通过cimg获取rgb值?

CImgsrc("image.jpg");intwidth=src.width();intheight=src.height();unsignedchar*ptr=src.data(10,10);如何从ptr获取rgb? 最佳答案 在Ubuntu10.04上使用保存为test.png的手工制作的3x3RGB图像进行测试:sudoapt-getinstallcimg-devSourcefilecimg_test.cpp:#includeusingnamespacestd;#includeusingnamespacecimg_libra

c++ - 更正 YUV422 到 RGB 的转换

大约一个星期以来,我一直在尝试将YUV422转换为RGB转换问题。我访问过许多不同的网站,并从每个网站获得了不同的公式。如果其他人有任何建议,我会很高兴听到他们。下面的公式给我一个图像,其中包含整体紫色或绿色色调。到目前为止,我还没有找到可以让我取回正确RGB图像的公式。我在下面包含了我所有的各种代码块。//for(inti=0;iimageData[i]=pData[i]+pData[i+2]*((1-0.299)/0.615);//m_RGB->imageData[i+1]=pData[i]-pData[i+1]*((0.114*(1-0.114))/(0.436*0.587))-