gpt4 book ai didi

Java JAI BufferedImage 与 C++ OpenCV Mat imread?

转载 作者:行者123 更新时间:2023-11-28 06:03:25 30 4
gpt4 key购买 nike

在 Java 中:

我正在使用 JAI 读取图像:

 BufferedImage image = javax.imageio.ImageIO.read(new File("path to JPG image"));

然后,我查看像素(0,2)的rgb值:

System.out.println("pixel[0][2]="+(new Color(image.getRGB(2, 0))));

在 C++ OpenCV 中:

Mat image = imread("path to the same JPG image");
image.convertTo(image, CV_32S);
cout <<" r value of pixel[0][2] "<< image.at<Vec3i>(0, 2)[2] << "\n";

值不同:r 值在 Java 中是 156,在 C++ 中是 155。为什么?

最佳答案

我认为这与图像格式有关,与 Java 或 OpenCV 无关。 JPEG 是有损压缩,因此在解码数据时,同一图像可能会得到不同的输出。这将取决于您用来读取图像信息的解码器。您正在试验的问题类似于以下问题中描述的问题。

Reading jpg file in OpenCV vs C# Bitmap

关于Java JAI BufferedImage 与 C++ OpenCV Mat imread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844972/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com