OpenCV中LUT()函數使用


 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM