#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
void imageLBP(cv::Mat& image, cv::Mat& lbpFeature);
void main()
{
Mat img = imread("D:\\17.jpg");
Mat result;
imageLBP(img, result);
namedWindow("Image", CV_WINDOW_AUTOSIZE);
namedWindow("Result", CV_WINDOW_AUTOSIZE);
imshow("Image", img);
imshow("Result", result);
cvWaitKey(0);
destroyAllWindows();
}
void imageLBP(cv::Mat& image, cv::Mat& lbpFeature)
{
int imageRows = image.rows;
int imageCols = image.cols;
if (image.channels() == 3)
{
cvtColor(image, image, CV_RGB2GRAY);
}
lbpFeature.create(imageRows-1, imageCols-1, CV_8U);
for (int i = 1; i < imageRows-1; i++)
{
for (int j = 1; j < imageCols-1; j++)
{
int value = image.at<uchar>(i, j);
lbpFeature.at<uchar>(i-1, j-1) = 0;
if (image.at<uchar>(i-1, j-1) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 1;
if (image.at<uchar>(i-1, j) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 2;
if (image.at<uchar>(i-1, j+1) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 4;
if (image.at<uchar>(i, j-1) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 8;
if (image.at<uchar>(i, j+1) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 16;
if (image.at<uchar>(i+1, j-1) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 32;
if (image.at<uchar>(i+1, j) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 64;
if (image.at<uchar>(i+1, j+1) >= value)
lbpFeature.at<uchar>(i-1, j-1) += 128;
}
}
}
LBP.rar_C++ LBP_LBP图像检索_lbp特征提取_图像LBP特征_特征提取
版权申诉
5星 · 超过95%的资源 62 浏览量
2022-09-23
12:08:52
上传
评论
收藏 599B RAR 举报
APei
- 粉丝: 63
- 资源: 1万+