如何使用Java OpenCV庫更改影像的顏色空間?
使用顏色空間協議,您可以表示影像中的顏色。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
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP