1 #include <iostream>
2 #include <opencv.hpp>
3
4 using namespace cv; 5
6 int main() 7 { 8 Mat img = imread("1.jpg", 0); 9 Mat img2; 10
11 // 將256縮減為0到25 共26位數字
12 uchar table[256]; 13 for (int i = 0; i < 256; i++) 14 table[i] = 10 * (i / 10); 15
16 // 將lookUpTable的數據地址(data) 賦給指針p
17 Mat lookUpTable(1, 256, CV_8U); 18 uchar *p = lookUpTable.data; 19
20 // 利用循環使p指向的數據地址內的數據與Table元素內的數據相同
21 for (int i = 0; i < 256; i++) 22 p[i] = table[i]; 23
24 /*
25 也可以這樣寫 26 這樣寫就可以不需要table數組以及對table數組賦值的循環了 27 for (int i = 0; i < 256; i++) 28 p[i] = 10 * (i / 10); 29 */
30
31 // 參數1: 輸入圖像(源圖像) 32 // 參數2: 輸入圖像(用做數據映射) 33 // 參數3: 輸出圖像(結果圖像)
34 LUT(img, lookUpTable, img2); 35
36 imshow("img", img); 37 imshow("img2", img2); 38
39 waitKey(0); 40 return 0; 41 }