OpenCV中LUT()函数使用

本文介绍了一种使用OpenCV实现图像灰度级量化的方法。通过创建查找表并利用LUT函数来减少图像的灰度级数,实现了从256级灰度到26级灰度的转换,并展示了具体代码实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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 }

 

转载于:https://www.cnblogs.com/mygyl/p/7413775.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值