C++opencv中LUT
时间: 2023-10-11 17:07:13 浏览: 155
LUT(查找表)是一种用于加速图像处理的技术,通过预先计算一个像素值的映射表,可以在处理图像时直接查表来完成处理,从而提高处理速度。在OpenCV中,LUT可以通过LUT函数来实现。
下面是一个简单的示例,使用LUT函数将一张灰度图像进行反转:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat src = imread("lena.jpg", IMREAD_GRAYSCALE);
if (src.empty())
{
cout << "Could not open or find the image" << endl;
return -1;
}
Mat lut(1, 256, CV_8UC1);
for (int i = 0; i < 256; i++)
{
lut.at<uchar>(i) = 255 - i;
}
Mat dst;
LUT(src, lut, dst);
imshow("src", src);
imshow("dst", dst);
waitKey();
return 0;
}
```
在上面的示例中,首先读入一张灰度图像,然后创建一个大小为1x256、类型为CV_8UC1的Mat对象lut,用于存储像素值的映射表。接着,使用一个循环来计算每个像素值在映射表中的对应值,并将其存储到lut中。最后,调用LUT函数,将原图像和lut作为参数传入,得到处理后的图像dst。最后,将原图像和处理后的图像显示出来,等待用户按下任意键后退出程序。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)