Java 如何在OpenCv中获取图像的强度值
我是Opencv新手,想用Java获取图像的强度值 我做了一个图像使用油漆4x4像素,希望从它得到的强度值,并打印在控制台 *这个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中的图像是使用矩阵表示的。下面是一种查找特定像素的强度值的方法
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]