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