Skip to content

Commit a7bbb9e

Browse files
committed
Colormap
1 parent ff51ae8 commit a7bbb9e

File tree

5 files changed

+200
-0
lines changed

5 files changed

+200
-0
lines changed

Colormap/colormap.cpp

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/**
2+
* OpenCV Colormap Example
3+
*
4+
* Copyright 2015 by Satya Mallick <[email protected]>
5+
*
6+
*/
7+
8+
#include "opencv2/opencv.hpp"
9+
10+
using namespace cv;
11+
using namespace std;
12+
13+
string colormap_name(int id)
14+
{
15+
switch(id){
16+
case COLORMAP_AUTUMN :
17+
return "COLORMAP_AUTUMN";
18+
case COLORMAP_BONE :
19+
return "COLORMAP_BONE";
20+
case COLORMAP_JET :
21+
return "COLORMAP_JET";
22+
case COLORMAP_WINTER :
23+
return "COLORMAP_WINTER";
24+
case COLORMAP_RAINBOW :
25+
return "COLORMAP_RAINBOW";
26+
case COLORMAP_OCEAN :
27+
return "COLORMAP_OCEAN";
28+
case COLORMAP_SUMMER:
29+
return "COLORMAP_SUMMER";
30+
case COLORMAP_SPRING :
31+
return "COLORMAP_SPRING";
32+
case COLORMAP_COOL :
33+
return "COLORMAP_COOL";
34+
case COLORMAP_HSV :
35+
return "COLORMAP_HSV";
36+
case COLORMAP_PINK :
37+
return "COLORMAP_PINK";
38+
case COLORMAP_HOT :
39+
return "COLORMAP_HOT";
40+
41+
}
42+
43+
return "NONE";
44+
}
45+
46+
int main( int argc, char** argv )
47+
{
48+
// Read 8-bit grayscale image
49+
Mat im = imread("pluto.jpg", IMREAD_GRAYSCALE);
50+
51+
Mat im_out = Mat::zeros(600, 800, CV_8UC3);
52+
53+
for (int i=0; i < 4; i++){
54+
for(int j=0; j < 3; j++){
55+
int k = i + j * 4;
56+
Mat im_color = im_out(Rect(i * 200, j * 200, 200, 200));
57+
applyColorMap(im, im_color, k);
58+
putText(im_color, colormap_name(k), Point(30, 180), CV_FONT_HERSHEY_DUPLEX, 0.5, Scalar::all(255), 1, CV_AA);
59+
}
60+
}
61+
62+
imshow("Pseudo Colored", im_out);
63+
waitKey(0);
64+
}

Colormap/colormap.py

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/env python
2+
3+
'''
4+
OpenCV Colormap Example
5+
6+
Copyright 2015 by Satya Mallick <[email protected]>
7+
8+
'''
9+
10+
11+
import cv2
12+
import numpy as np
13+
14+
15+
def colormap_name(id) :
16+
switcher = {
17+
0 : "COLORMAP_AUTUMN",
18+
1 : "COLORMAP_BONE",
19+
2 : "COLORMAP_JET",
20+
3 : "COLORMAP_WINTER",
21+
4 : "COLORMAP_RAINBOW",
22+
5 : "COLORMAP_OCEAN",
23+
6 : "COLORMAP_SUMMER",
24+
7 : "COLORMAP_SPRING",
25+
8 : "COLORMAP_COOL",
26+
9 : "COLORMAP_HSV",
27+
10: "COLORMAP_PINK",
28+
11: "COLORMAP_HOT"
29+
30+
}
31+
return switcher.get(id, "NONE")
32+
33+
34+
if __name__ == '__main__' :
35+
36+
im = cv2.imread("pluto.jpg", cv2.IMREAD_GRAYSCALE)
37+
im_out = np.zeros((600, 800, 3), np.uint8);
38+
39+
for i in xrange(0,4) :
40+
for j in xrange(0,3) :
41+
k = i + j * 4
42+
im_color = cv2.applyColorMap(im, k)
43+
cv2.putText(im_color, colormap_name(k), (30, 180), cv2.FONT_HERSHEY_DUPLEX, 0.5, (255, 255, 255), 1, cv2.CV_AA);
44+
45+
ix200 = i * 200
46+
jx200 = j * 200
47+
48+
im_out[ jx200 : jx200 + 200 , ix200 : ix200 + 200 , : ] = im_color
49+
50+
cv2.imshow("Pseudo Colored", im_out);
51+
cv2.waitKey(0);

Colormap/custom_colormap.cpp

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* OpenCV Custom Colormap Example
3+
*
4+
* Copyright 2015 by Satya Mallick <[email protected]>
5+
*
6+
*/
7+
8+
9+
#include "opencv2/opencv.hpp"
10+
11+
using namespace cv;
12+
using namespace std;
13+
14+
Mat applyCustomColorMap(Mat& im_gray)
15+
{
16+
unsigned char b[] = {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,251,249,247,245,242,241,238,237,235,233,231,229,227,225,223,221,219,217,215,213,211,209,207,205,203,201,199,197,195,193,191,189,187,185,183,181,179,177,175,173,171,169,167,165,163,161,159,157,155,153,151,149,147,145,143,141,138,136,134,132,131,129,126,125,122,121,118,116,115,113,111,109,107,105,102,100,98,97,94,93,91,89,87,84,83,81,79,77,75,73,70,68,66,64,63,61,59,57,54,52,51,49,47,44,42,40,39,37,34,33,31,29,27,25,22,20,18,17,14,13,11,9,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
17+
18+
19+
unsigned char g[] = { 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,250,248,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180,178,176,174,171,169,167,165,163,161,159,157,155,153,151,149,147,145,143,141,139,137,135,133,131,129,127,125,123,121,119,117,115,113,111,109,107,105,103,101,99,97,95,93,91,89,87,85,83,82,80,78,76,74,72,70,68,66,64,62,60,58,56,54,52,50,48,46,44,42,40,38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,8,6,4,2,0 };
20+
21+
22+
unsigned char r[] = {195,194,193,191,190,189,188,187,186,185,184,183,182,181,179,178,177,176,175,174,173,172,171,170,169,167,166,165,164,163,162,161,160,159,158,157,155,154,153,152,151,150,149,148,147,146,145,143,142,141,140,139,138,137,136,135,134,133,131,130,129,128,127,126,125,125,125,125,125,125,125,125,125,125,125,125,125,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126};
23+
24+
Mat channels[] = {Mat(256,1, CV_8U, b), Mat(256,1, CV_8U, g), Mat(256,1, CV_8U, r)};
25+
Mat lut; // Create a lookup table
26+
merge(channels, 3, lut);
27+
28+
Mat im_color;
29+
LUT(im_gray, lut, im_color);
30+
31+
return im_color;
32+
33+
}
34+
35+
36+
37+
int main( int argc, char** argv )
38+
{
39+
// Read 8-bit grayscale image
40+
Mat im = imread("pluto.jpg", IMREAD_GRAYSCALE);
41+
cvtColor(im.clone(), im, COLOR_GRAY2BGR);
42+
Mat im_color = applyCustomColorMap(im);
43+
44+
imshow("Pseudo Colored Image", im_color);
45+
waitKey(0);
46+
47+
}

Colormap/custom_colormap.py

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/usr/bin/env python
2+
3+
'''
4+
OpenCV Custom Colormap Example
5+
6+
Copyright 2015 by Satya Mallick <[email protected]>
7+
8+
'''
9+
10+
import cv2
11+
import numpy as np
12+
13+
def applyCustomColorMap(im_gray) :
14+
15+
lut = np.zeros((256, 1, 3), dtype=np.uint8)
16+
17+
lut[:, 0, 0] = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,251,249,247,245,242,241,238,237,235,233,231,229,227,225,223,221,219,217,215,213,211,209,207,205,203,201,199,197,195,193,191,189,187,185,183,181,179,177,175,173,171,169,167,165,163,161,159,157,155,153,151,149,147,145,143,141,138,136,134,132,131,129,126,125,122,121,118,116,115,113,111,109,107,105,102,100,98,97,94,93,91,89,87,84,83,81,79,77,75,73,70,68,66,64,63,61,59,57,54,52,51,49,47,44,42,40,39,37,34,33,31,29,27,25,22,20,18,17,14,13,11,9,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
18+
19+
lut[:, 0, 1] = [ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,250,248,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180,178,176,174,171,169,167,165,163,161,159,157,155,153,151,149,147,145,143,141,139,137,135,133,131,129,127,125,123,121,119,117,115,113,111,109,107,105,103,101,99,97,95,93,91,89,87,85,83,82,80,78,76,74,72,70,68,66,64,62,60,58,56,54,52,50,48,46,44,42,40,38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,8,6,4,2,0 ]
20+
21+
22+
lut[:, 0, 2] = [195,194,193,191,190,189,188,187,186,185,184,183,182,181,179,178,177,176,175,174,173,172,171,170,169,167,166,165,164,163,162,161,160,159,158,157,155,154,153,152,151,150,149,148,147,146,145,143,142,141,140,139,138,137,136,135,134,133,131,130,129,128,127,126,125,125,125,125,125,125,125,125,125,125,125,125,125,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126]
23+
24+
25+
im_color = cv2.LUT(im_gray, lut)
26+
27+
return im_color;
28+
29+
30+
if __name__ == '__main__' :
31+
32+
im = cv2.imread("pluto.jpg", cv2.IMREAD_GRAYSCALE);
33+
im = cv2.cvtColor(im, cv2.COLOR_GRAY2BGR);
34+
im_color = applyCustomColorMap(im);
35+
36+
cv2.imwrite('/tmp/colormap_algae.jpg', im_color)
37+
cv2.imshow("Pseudo Colored Image", im_color);
38+
cv2.waitKey(0);

Colormap/pluto.jpg

6.57 KB
Loading

0 commit comments

Comments
 (0)