使用Java OpenCV庫將彩色影像讀取為灰度影像。
Imgcodecs類的**imread()**方法接受一個表示檔名字串值的引數。此方法將指定檔案的內容讀取到矩陣物件中並返回它。使用此方法,您可以讀取影像的內容。
此外,Imgcodecs類還提供了此方法的另一個變體,它接受一個整數作為引數,該整數表示指定所需讀取模式的標誌。
以下是可作為標誌值使用的**Imgcodecs**類的各個欄位。
**IMREAD_COLOR** − 如果標誌設定為此值,則載入的影像將轉換為3通道BGR(藍綠紅)彩色影像。
**IMREAD_GRAYSCALE** − 如果標誌設定為此值,則載入的影像將轉換為單通道灰度影像。
**IMREAD_LOAD_GDAL** − 如果標誌設定為此值,則可以使用GDAL驅動程式載入影像。
**IMREAD_ANYCOLOR** − 如果標誌設定為此值,則影像將以任何可能的顏色格式讀取。
**IMREAD_REDUCED_COLOR_2 或,
IMREAD_REDUCED_COLOR_4 或,
IMREAD_REDUCED_COLOR_8** − 如果標誌設定為此值,則影像將讀取為三通道BGR,並且影像大小將相對於所使用的欄位縮小到原始影像大小的½、¼或⅛。**IMREAD_REDUCED_GRAYSCALE_2 或,
IMREAD_REDUCED_GRAYSCALE_4 或,
IMREAD_REDUCED_GRAYSCALE_8** − 如果標誌設定為此值,則影像將讀取為單通道灰度影像,並且影像大小將相對於所使用的欄位縮小到原始影像大小的½、¼或⅛。**IMREAD_UNCHANGED** − 如果標誌設定為此值,則載入的影像將按原樣返回。
因此,如果您需要將彩色影像讀取為灰度影像,則應將IMREAD_GRAYSCALE或IMREAD_REDUCED_GRAYSCALE_X作為引數傳遞。
示例1
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadAsGreyScale {
public static void main(String args[]) {
//Loading the OpenCV core library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//Reading the Image from the file
Mat matrix = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
//Writing the image
Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix);
System.out.println("Image re-Saved");
}
}輸入

輸出

示例2
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadingAsGrey2 {
public static void main(String args[]) {
//Loading the OpenCV core library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
String input = "D://images//sunset.jpg";
//Reading the Image from the file
Mat matrix = Imgcodecs.imread(input, Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4 );
//Writing the image
Imgcodecs.imwrite("D://images//sunset_grey_8.jpg", matrix);
System.out.println("Image re-Saved");
}
}輸出

資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP