gpt4 book ai didi

java - 如何在java中像MATLAB imread()一样读取图像?

转载 作者:行者123 更新时间:2023-11-30 06:53:51 26 4
gpt4 key购买 nike

在Java中我想读取图像。为此,我使用了以下代码:

BufferedReader br = ImageIO.read(new File('a.png'));

它可以工作。但是br中的值是这样的:-16220000,-5682000,...。

在 MATLAB 中,imread() 将图像读取到数组中,值的范围为 0 到 256。imread() 是如何工作的?

最佳答案

在 Java 中(也如 C 和 C++),您可以使用 OpenCV 库。在这种情况下,您要查找的指令是:

include "opencv2/highgui/highgui.hpp"
include "iostream"
using namespace cv;
using namespace std;
int main(){
Mat img = imread("lena.png", CV_LOAD_IMAGE_COLOR);
if (img.empty()){
cout << "Cannot load image!" << endl;
return -1;
}
namedWindow("image", CV_WINDOW_AUTOSIZE);
imshow("image", img);
waitKey(0);
return 0;
}
  • Here您可以找到包含有关如何添加这些库的所有信息的网页。

  • Here您可以找到一些教程和整个文档。

但是,图像可以通过多种不同的方式存储。将图像放入内存堆后,您就可以使用这些值,并将图像像素值固定在您喜欢的范围内(在本例中为 [0,255])。

例如,如果您有一个位于 [0,X] 范围内的像素,并且希望将其映射到 [0,255] 范围内,则公式为 pixel_value/X*255。您可以使用“for”来迭代输入图像的像素总数。

关于java - 如何在java中像MATLAB imread()一样读取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42185060/

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