局部二值模式LBP C++版本OpenCV代码
时间: 2023-09-05 07:15:09 浏览: 59
下面是一个简单的局部二值模式LBP的C++版本OpenCV代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
#include <cmath>
using namespace cv;
using namespace std;
// 计算像素点的LBP值
uchar getLBPValue(Mat img, int row, int col)
{
uchar center = img.at<uchar>(row, col);
uchar code = 0;
code |= (img.at<uchar>(row-1, col-1) >= center) << 7;
code |= (img.at<uchar>(row-1, col) >= center) << 6;
code |= (img.at<uchar>(row-1, col+1) >= center) << 5;
code |= (img.at<uchar>(row, col+1) >= center) << 4;
code |= (img.at<uchar>(row+1, col+1) >= center) << 3;
code |= (img.at<uchar>(row+1, col) >= center) << 2;
code |= (img.at<uchar>(row+1, col-1) >= center) << 1;
code |= (img.at<uchar>(row, col-1) >= center) << 0;
return code;
}
// 计算图像的LBP特征图
Mat getLBPImage(Mat img)
{
Mat dst = Mat::zeros(img.size(), CV_8UC1);
for (int i = 1; i < img.rows - 1; i++)
{
for (int j = 1; j < img.cols - 1; j++)
{
dst.at<uchar>(i, j) = getLBPValue(img, i, j);
}
}
return dst;
}
int main(int argc, char** argv)
{
// 加载图像
Mat img = imread("lena.jpg", IMREAD_GRAYSCALE);
if (img.empty())
{
cout << "Failed to load image!" << endl;
return -1;
}
// 计算LBP特征图
Mat lbpImg = getLBPImage(img);
// 显示原图和LBP特征图
namedWindow("Original Image", WINDOW_NORMAL);
namedWindow("LBP Image", WINDOW_NORMAL);
imshow("Original Image", img);
imshow("LBP Image", lbpImg);
waitKey(0);
return 0;
}
```
这个代码可以计算输入图像的LBP特征图,并显示出来。其中,`getLBPValue()`函数计算像素点的LBP值,`getLBPImage()`函数计算整个图像的LBP特征图。你可以根据需要修改代码以适应你的应用场景。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)