- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我将 OpenCV 用于我的一些图像处理相关代码。我被困在一个特定的点上。
在特定代码中,我需要根据图像的 CIE L*a*b* 值比较图像的像素值。我知道对于 BGR 我们可以做这样的事情:
// img is the image, suppose
uchar *data = ( uchar* )img->imageData;
for(i=0; i< img->height; i++)
for(j=0; j<img->width; j++)
{
b = data[i*img->widthStep + j*img->nChannels + 0];
g = data[i*img->widthStep + j*img->nChannels + 1];
r = data[i*img->widthStep + j*img->nChannels + 2];
}
我的问题是,我们是否也可以对 l*a*b* 颜色模型做类似的事情?我的意思是首先我将图像转换为
cvCvtColor(img, lab, CV_BGR2Lab);
然后像上面的例子一样访问各个 channel 信息(因为 L*a*b* 也由 3 个 channel 组成,如果没记错的话),我们可以得到像素值吗??
我问这个的原因是我试图实现它,但我得到了一些真正奇怪的值,比如非常高的负数(我使用 int 数据类型而不是 uchar,因为我不确定范围 'a' 和 ' b' 可以有 ) 而在维基百科中我看到 'L' 的值只能在 0 到 100 的范围内。那么我究竟怎样才能得到这些像素值呢??
提前致谢!!
最佳答案
当然,你可以做到,为什么不呢?但是请注意,输出有些特定(因为 a
和 b
可以是负数):
On output 0≤L≤100, -127≤a≤127, -127≤b≤127
The values are then converted to the destination data type:
8-bit images:
L <- L*255/100, a <- a + 128, b <- b + 128
请注意,L
也缩放到 0-255 范围(而不是 0-100)。查看更多here .
顺便说一句,如果你的数据类型是unsigned char,你怎么能得到负数?
关于c - 访问 CIE L* a*b* 颜色空间中的像素信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11043815/
为什么CIE XY色彩空间中没有棕色或灰色? 最佳答案 xy 色度图不是颜色空间;它是色彩空间的二维投影,旨在将色调和饱和度与亮度分开。为了表示灰色和棕色,你需要这个第三维,因为灰色基本上是深白色,棕
我想为 XYZ CIE 颜色模型绘制剖面图,如下所示: 你知道怎么做吗? 最佳答案 很简短... 您可以通过为标准观察者绘制 xy(我有 XY 而不是 xy)数据来绘制谱线(马蹄形)。然后,您可以通过
这个问题在这里已经有了答案: RGB to Philips Hue (HSB) (5 个答案) 关闭 8 年前。 正如我之前所说 ( RGB to Philips Hue (HSB) ) 我仍然没有
在 OpenCV 中,我正在使用颜色空间 CIE Luv 中的 cv::Mat,Mat 数据类型为 uint8。 我正在尝试找出每个 channel 的值范围。以下是正确的吗? L can be an
我将 OpenCV 用于我的一些图像处理相关代码。我被困在一个特定的点上。 在特定代码中,我需要根据图像的 CIE L*a*b* 值比较图像的像素值。我知道对于 BGR 我们可以做这样的事情: //
我正在尝试在已绘制的 CIE 1931 颜色空间上绘制一些颜色值(坐标)。我已经导出了要绘制的 XYZ 颜色值,表示为 [X, Y, Z]- [50,57,10][36,43,15][28,36,8]
我想将 YUV (YCbCr) 中的像素值转换为 CIE L* a* b* 颜色空间。我是否必须通过 RGB 和 CIEXYZ 色彩空间,或者有人知道直接转换的公式吗? 最佳答案 您需要完成每个步骤。
我有一个很长的十六进制字符串数据,数据内容是RGB,可以代表X Y Z。现在如何从RGB颜色空间中提取3D模型?OpenCV有帮助吗?或者其他一些库。现在我可以想出一个想法。首先找到颜色的最小立方体。
我在一年前创建了一个 Java 应用程序,它基本上是一个网站的多线程套接字服务器。我围绕一个教程构建了这个,我扩展它来做很多事情,包括使用 Flash 客户端的实时多人游戏。我使用的教程如下(法语):
如何在 Javascript 中拥有 CIE(色度/开尔文温度)色域? 我在 Canvas 上绘制了 XYZ 到 RGB 颜色三 Angular 形,就像绘图一样 . 但我还需要像这样的整个 CIE
我正在尝试在 C++ 中使用 openCV 加载 CIE Lab* 图像。在网上我只能找到加载 RGB 图像并将其转换为 LAB 图像的示例,但我已经有了 LAB 图像,所以如何加载它而不是访问 L、
我想使用 python 2.7 脚本,该脚本应该在 Linux 或 Windows 下工作,将图像从 RGB 转换为 Hexachrome(或 CIELAB 或 CIE XYZ)。我想知道是否有任何库
有人能告诉我为什么具有相同 rgb 值(例如 127、127、127)的颜色在使用 sRGB 空间的图像和使用 CIE RGB 空间的图像中看起来完全相同吗?由于一个是非线性的(有 Gamma 校正)
我正在创建我自己的基于 PHP 的应用程序,我想在其中将 RGB 颜色更改为 CIE 1931 的 xy 格式。 如何将 RGB 颜色规范转换为 CIE 颜色空间? 最佳答案 先用变换矩阵计算X、Y、
我有一个数据库表,其中每一行都是一种颜色。我的目标:给定输入颜色,计算其与 DB 表中每种颜色的距离,并按该距离对结果进行排序。或者,作为用户故事陈述:当我选择一种颜色时,我希望看到与我选择的颜色最相
我正在尝试使用文档中提供的函数将表示具有 8 位深度的 RGB 图像的给定 Mat 转换为 Lab : cvtColor(source, destination, ); 我尝试了以下转换代码: CV_
我正在将 opencv 用于某个图像处理代码。我需要从某张图片中提取颜色层。所以我所做的是保持像素具有特定值并将剩余像素设置为背景色(在本例中为白色)。对于某些问题,我必须在 CIE-L*a*b* 色
我已经实现了几个函数来将 sRGB 转换为 CIE-L*a*b*色彩空间。 现在,我想用它来进行抖动,但我不确定如何准确辨别哪种颜色是“较低”颜色,哪种颜色是“较高”颜色。 当在一维色彩空间(灰度)中
我试图在 Linux 帐户上配置 Weblogic 12.2.1.3。在阅读了 oracle 文档后,我了解到我们通过运行位于 /opt/weblogic12213/wlserver_12.2.1.3
我是一名优秀的程序员,十分优秀!