如何使用 Java OpenCV 库更改图像的颜色空间?
javaobject oriented programmingprogramming更新于 2025/10/8 8:44:17
使用颜色空间协议,您可以表示图像中的颜色。OpenCV 中有几种颜色空间可用,其中一些是 −
BGR − RGB 是其中使用最广泛的颜色空间,每个像素实际上由三种不同的颜色(强度)值组成:红色、蓝色和绿色,它是 OpenCV 中的默认颜色空间,但它存储为 BGR。
HSV − 在 HSV 颜色空间中,通过改变色调、饱和度和亮度来形成不同的颜色。
CMK −这是一个减色空间,其中不同的颜色是通过从白色开始减去青色、洋红色和黄色值形成的。
Y’UV − Y’UV 用一个亮度 (Y’) 和两个色度 (UV) 分量来定义颜色空间。Y’UV 颜色模型用于以下复合颜色视频标准。
您可以使用 org.opencv.imgproc.Imgproc 类的 cvtColor() 方法将图像的表示形式从一个颜色空间转换为另一个颜色空间。此方法接受源图像、目标图像和表示目标图像颜色的代码。
要将颜色空间从 BGR 更改为 HSV,您需要传递 COLOR_BGR2HSV 作为颜色代码值。同样,要将颜色空间从 BGR 更改为 YUV,您需要传递 COLOR_BGR2YUV 作为颜色代码。
示例
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class ChangingColorSpaces {
public static void main(String args[]) throws Exception {
//Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
//Reading the image
Mat src = Imgcodecs.imread("D:\images\elephant.jpg");
//Creating the empty destination matrix
Mat dst = new Mat();
//Converting From BGR to Gray
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);
HighGui.imshow("BGR to Gray", dst);
dst = new Mat();
//Converting From BGR to HSV
Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2HSV);
HighGui.imshow("BGR to HSV", dst);
dst = new Mat();
//Converting From BGR to HSV
Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2YUV);
HighGui.imshow("BGR to YUV", dst);
HighGui.waitKey();
}
}
输入图片

输出
执行时,上述程序生成以下窗口 −
BGR 转灰度 −

BGR 转 HSV −

BGR 转 YUV −

相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

