Java 如何在OpenCv中获取图像的强度值

Java 如何在OpenCv中获取图像的强度值,java,opencv,Java,Opencv,我是Opencv新手,想用Java获取图像的强度值 我做了一个图像使用油漆4x4像素,希望从它得到的强度值,并打印在控制台 *这个 因为,OpenCV中的图像是使用矩阵表示的。下面是一种查找特定像素的强度值的方法 Scalar intensity = img.at<uchar>(y, x); 标量强度=img.at(y,x); 上面的行表示,我们正在访问像素(y,x),并将其数据类型指定为unsigned char 要找到给定点的相同点 Scalar intensity =

我是Opencv新手,想用Java获取图像的强度值

我做了一个图像使用油漆4x4像素,希望从它得到的强度值,并打印在控制台

*这个


因为,OpenCV中的图像是使用矩阵表示的。下面是一种查找特定像素的强度值的方法

Scalar intensity = img.at<uchar>(y, x);
标量强度=img.at(y,x);
上面的行表示,我们正在访问像素(y,x),并将其数据类型指定为unsigned char

要找到给定点的相同点

Scalar intensity = img.at<uchar>(Point(x, y));
标量强度=在(x,y)点的img;

不要忘了导入Numpy以使用标量。

我发现了一些可以满足我需要的功能:

import java.net.URL;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;

public class helloCV{
public static void main(String[]args){
    System.out.println(Core.VERSION);
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
    mat = Highgui.imread("C:\\Users\\HM\\Pictures\\ImageDemo.png");
    System.out.println("mat = " + mat.dump());
    }
}
我猜这会打印每个像素的RGB值矩阵:

run:
2.4.9.0
mat = [88, 88, 88, 127, 127, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]
其中,前3个数字(88、88、88)表示第一个像素的RGB颜色,依此类推,每3个数字表示每个像素。我是对的

但是
Mat Mat=Mat.eye(3,3,CvType.CV_8UC1)
Mat.dump()
意味着什么?

Mat.get(row,col)返回一个双精度[],这个数组的大小是Mat.channels()。 该数组包含强度值

因此,对于CvType.CV_8UC1,该数组的长度为1

对于CvType.CV_8UC3,它返回一个包含3个值的数组

mat.rows()和mat.cols()提供mat中的行数和列数

mat.dump()为整个mat提供强度值,其与所有行和列的mat.get()相同

mat.eye()返回指定大小和类型的标识矩阵。强度值为零,沿矩阵对角线方向为一加一


有关Mat的更多详细信息:

img.at
意味着该图像是一个8位单通道图像感谢您的信息杜德!
run:
2.4.9.0
mat = [88, 88, 88, 127, 127, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255;
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]