@TOC
顔色映射的應用還是比較廣泛的,比如紅外熱成像圖,僞色彩
采用以下圖檔做示範(
使用灰階圖和彩色圖效果是一樣的
)
一,Imgproc
1.applyColorMap()
方法 | 說明 |
applyColorMap(Mat src, Mat dst, int colormap) | src:原圖像 dst:目标圖像 colormap:OpenCV自帶的顔色 userColor:自定義色彩 |
applyColorMap(Mat src, Mat dst, Mat userColor) | |
Imgproc.colormap 對照表:
key | value |
COLORMAP_AUTUMN | |
COLORMAP_BONE | 1 |
COLORMAP_JET | 2 |
COLORMAP_WINTER | 3 |
COLORMAP_RAINBOW | 4 |
COLORMAP_OCEAN | 5 |
COLORMAP_SUMMER | 6 |
COLORMAP_SPRING | 7 |
COLORMAP_COOL | 8 |
COLORMAP_HSV | 9 |
COLORMAP_PINK | 10 |
COLORMAP_HOT | 11 |
COLORMAP_PARULA | 12 |
COLORMAP_MAGMA | 13 |
COLORMAP_INFERNO | 14 |
COLORMAP_PLASMA | 15 |
COLORMAP_VIRIDIS | 16 |
COLORMAP_CIVIDIS | 17 |
COLORMAP_TWILIGHT | 18 |
COLORMAP_TWILIGHT_SHIFTED | 19 |
COLORMAP_TURBO | 20 |
COLORMAP_DEEPGREEN | 21 |
示例:
public static void main(String[] args) {
String libraryPath= System.getProperty("user.dir")+"\\lib\\opencv_java460.dll";
System.load(libraryPath);
Mat img = Imgcodecs.imread("cat.jpg");
Mat mat = new Mat();
Imgproc.applyColorMap(img,mat,Imgproc.COLORMAP_AUTUMN);
HighGui.imshow("mat",mat);
HighGui.waitKey(1);
}
結果:
2.cvtColor()
cvtColo函數被用于顔色空間轉換.
方法 | 說明 |
cvtColor(Mat src, Mat dst, int code, int dstCn) | src:原圖像 dst:目标圖像 code:轉換類型 |
cvtColor(Mat src, Mat dst, int code) | |
public static void main(String[] args) {
String libraryPath= System.getProperty("user.dir")+"\\lib\\opencv_java460.dll";
System.load(libraryPath);
Mat img = Imgcodecs.imread("cat.jpg");
Mat mat = new Mat();
Imgproc.cvtColor(img,mat,Imgproc.COLOR_HSV2BGR);
HighGui.imshow("mat",mat);
HighGui.waitKey(0);
}