颜色映射的应用还是比较广泛的,比如红外热成像图,伪色彩
采用以下图片做演示(使用灰度图和彩色图效果是一样的
)
一,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 | 0 |
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) |
更多code查看Imgcodecs
示例:
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);
}
效果