- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;
public class ConvertRGBtoLAB {
public static void main(String[] args) {
//get input image
String fileName = "IMG_7990.jpg";
//read input image
BufferedImage image = null;
try
{
image = ImageIO.read(new File(fileName));
}
catch (IOException e)
{
e.printStackTrace();
}
//setup result image
int sizeX = image.getWidth();
int sizeY = image.getHeight();
float r, g, b, X, Y, Z, fx, fy, fz, xr, yr, zr;
float ls, as, bs;
float eps = 216.f/24389.f;
float k = 24389.f/27.f;
float Xr = 0.964221f; // reference white D50
float Yr = 1.0f;
float Zr = 0.825211f;
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
int c = image.getRGB(x,y);
int R= (c & 0x00ff0000) >> 16;
int G = (c & 0x0000ff00) >> 8;
int B = c & 0x000000ff;
r = R/255.f; //R 0..1
g = G/255.f; //G 0..1
b = B/255.f; //B 0..1
// assuming sRGB (D65)
if (r <= 0.04045)
r = r/12;
else
r = (float) Math.pow((r+0.055)/1.055,2.4);
if (g <= 0.04045)
g = g/12;
else
g = (float) Math.pow((g+0.055)/1.055,2.4);
if (b <= 0.04045)
b = b/12;
else
b = (float) Math.pow((b+0.055)/1.055,2.4);
X = 0.436052025f*r + 0.385081593f*g + 0.143087414f *b;
Y = 0.222491598f*r + 0.71688606f *g + 0.060621486f *b;
Z = 0.013929122f*r + 0.097097002f*g + 0.71418547f *b;
// XYZ to Lab
xr = X/Xr;
yr = Y/Yr;
zr = Z/Zr;
if ( xr > eps )
fx = (float) Math.pow(xr, 1/3.);
else
fx = (float) ((k * xr + 16.) / 116.);
if ( yr > eps )
fy = (float) Math.pow(yr, 1/3.);
else
fy = (float) ((k * yr + 16.) / 116.);
if ( zr > eps )
fz = (float) Math.pow(zr, 1/3.);
else
fz = (float) ((k * zr + 16.) / 116);
ls = ( 116 * fy ) - 16;
as = 500*(fx-fy);
bs = 200*(fy-fz);
int Ls = (int) (2.55* ls + .5);
int As = (int) (as + .5);
int Bs = (int) (bs + .5);
int lab = 0xFF000000 + (Ls << 16) + (As << 8) + Bs; // and reassign
image.setRGB(x, y, lab);
}
}
//write new image
File outputfile = new File("lab.png");
try {
// png is an image format (like gif or jpg)
ImageIO.write(image, "png", outputfile);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
你好,
我正在尝试将 RGB 图像转换为 CIELAB 色彩空间 (LAB),我得到了一个输出,但我不知道它应该是什么样子。
任何人都可以指出我已经存在的图像转换器或确认我是否正确完成了此操作?
谢谢!
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
我当然知道怎么把RGB转LAB,LAB转RGB,色差计算在https://en.wikipedia.org/wiki/Color_difference中有提到。 . 但是,它没有提及任何关于不透明度的
根据 MATLAB 帮助测量每个超像素的平均颜色,我将图像分割为 200 个超像素,并尝试将输出图像中每个像素的颜色设置为超像素区域的平均 CIELAB 颜色。输入图像如下图所示: B=imrea
为了可视化某些数据,我应该使用着色。也就是说,我处理的 C++ 代码是使用 cairo-graphics 输出的,该函数基于 RGB 空间。另一方面,我处理的数据应该利用 CIELab 色彩空间的“特
是否有规范的色彩空间转换库?我找不到任何预先存在的解决方案。 CIELab 转换是否太晦涩? 最佳答案 不难理解,最近自己从RGB转CIELAB。查看OpenCV的源代码,有很多颜色转换功能。文件是:
我有以下脚本,可以获取 RGB 图像并将其转换为 Lab 颜色空间: import tensorflow as tf import tensorflow_io as tfio img = tf.io.
在 CIElab 中混合颜色时是否可以考虑一个的 alpha channel ?有关于 alpha 的 wiki 页面 https://en.wikipedia.org/wiki/Alpha_comp
这个问题在这里已经有了答案: Java: how to convert RGB color to CIE Lab (6 个答案) 关闭 6 年前。 import java.awt.*; import
我在这里阅读了几个主题,根据答案没有确切的解决方案。无论如何,假设我们有 RGB 颜色选择器 (0-255,0-255,0-255) 和两种颜色,一种是原始的未混合颜色,另一种是混合颜色,那么我如何精
我在 stackoverflow 上看到过几次 CIELab 和 HSV 的建议,但我一直没能找到与皮肤对应的任何值。在 CIELab 和 HSV 颜色空间中进行皮肤检测时,需要寻找哪些好的值? 例如
我正在研究 CIELAB 色彩空间,但找不到有关 skimage.color.rgb2lab 生成的每个 channel 范围的任何信息。 谢谢。 最佳答案 只想发布@Stefan 的答案 L:0 到
我需要在 Android 应用程序中使用 CIELAB 色彩空间。问题是android不支持java awt,这是转换颜色所需要的,我不知道没有它如何做到这一点。 最佳答案 Android 支持库现在
我正在使用 python 的 colormatch 将 CIE L*a*b* 转换为 sRGB 输入: (lab_l=70.0,lab_a=60.0,lab_b=0.0) 输出: (1.0458503
我使用以下代码读取了 RGB 图像 library(raster) #Load an image logo <- stack(system.file("external/rlogo.grd", pac
我想使用 python 2.7 脚本,该脚本应该在 Linux 或 Windows 下工作,将图像从 RGB 转换为 Hexachrome(或 CIELAB 或 CIE XYZ)。我想知道是否有任何库
我正在尝试使用来自 python colormath(delta_e_cie2000 等)的 Delta E 函数将 Cielab 颜色的比较值转换为概率分布。问题是,我找不到任何关于 Delta E
我的最终目标是将 RGB 转换为 CIELAB,进行一些颜色平均,然后再转换回来。所以我的假设是,如果由于运行时环境而只有单一颜色输入,即没有平均,那么变换输出应该与 RGB 输入完全相同,但事实并非
当从 XYZ(CIE 1931 色彩空间)转换为 L*a*b* (CIELAB) 时,您会发现例如在这里https://en.wikipedia.org/wiki/CIELAB_color_space
当从 XYZ(CIE 1931 色彩空间)转换为 L*a*b* (CIELAB) 时,您会发现例如在这里https://en.wikipedia.org/wiki/CIELAB_color_space
我们的 API 中已经有一个高度优化的类来读取 3D Lut(Nuke 格式)文件并将转换应用于图像。因此,与其使用复杂的公式逐个像素地迭代并将 RGB 值转换为 Lab (RGB->XYZ->Lab
我是一名优秀的程序员,十分优秀!