天天看點

OpenCV-顔色映射(java版)

@​​TOC​​

顔色映射的應用還是比較廣泛的,比如紅外熱成像圖,僞色彩

采用以下圖檔做示範(​

​使用灰階圖和彩色圖效果是一樣的​

​)

OpenCV-顔色映射(java版)

一,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);
    }      

結果:

OpenCV-顔色映射(java版)

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);
    }