50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > LBP算法提取图片纹理特征图

LBP算法提取图片纹理特征图

时间:2020-01-15 03:21:23

相关推荐

LBP算法提取图片纹理特征图

LBP算法提取图片纹理特征图

一、项目目标

采用LBP算法提取图片的纹理特征图。

二、LBP算法原理

LBP指局部二值模式,英文全称:Local Binary Patterns。最初功能为辅助图像局部对比度,并不是一个完整的特征描述子。在数字图像处理和模式识别领域,后来提升为一种有效的纹理描述算子,度量和提取图像局部的纹理信息,对光照具有不变性。LBP有很多变种,或说改进。单纯的LBP记录像素点与其周围像素点的对比信息,或说差异。从图1我们看到,最左边的是原图,标号为example。我们要检测某个像素点的某些信息,在图1中,对于9个方格中中间方格(方格中的数字是像素点灰度值大小),做一个阈值化处理。大于等于中心点像素的,则标记为1,小于的则标记为0。最后将中心像素点周围的11110001二进制数化为十进制数,得到LBP值。

其中进制数11110001的顺序并无硬性要求,只要在同一处理中保持相同的顺序即可。

但是这样的LBP描述特征能力有限,且不具备旋转不变性。很容易想象,如果图片进行了旋转,则LBP值也会随之改变。

三、代码

#include <opencv2/opencv.hpp>#include <iostream> using namespace cv;using namespace std; Mat LBP(Mat src_image); int main(){Mat img0 = imread("src.jpg");cv::imshow("原图", img0); LBP(img0);cvWaitKey(0);return 0;} Mat LBP(Mat src_image){//源图像预处理cv::Mat Image(src_image.rows, src_image.cols, CV_8UC1); //建立一个与src_image等高等宽的单通道图像Imagecv::Mat lbp(src_image.rows, src_image.cols, CV_8UC1); //建立一个与src_image等高等宽的单通道图像lbpif (src_image.channels() == 3)cvtColor(src_image, Image, CV_BGR2GRAY); //LBP只能处理灰度图像,转化为灰度图unsigned center = 0; //提取需要计算LBP值得中心点的灰度值unsigned center_lbp = 0;//计算center处的LBP值 //计算LBP图像for (int row = 1; row < Image.rows - 1; row++){for (int col = 1; col < Image.cols - 1; col++){center = Image.at<uchar>(row, col);center_lbp = 0;if (center <= Image.at<uchar>(row - 1, col - 1))center_lbp += 1;//8位二进制数第0位置1if (center <= Image.at<uchar>(row - 1, col))center_lbp += 2;//8位二进制数第1位置1 if (center <= Image.at<uchar>(row - 1, col + 1))center_lbp += 4;//8位二进制数第2位置1 if (center <= Image.at<uchar>(row, col - 1))center_lbp += 8;//8位二进制数第3位置1 if (center <= Image.at<uchar>(row, col + 1))center_lbp += 16;//8位二进制数第4位置1 if (center <= Image.at<uchar>(row + 1, col - 1))center_lbp += 32;//8位二进制数第5位置1 if (center <= Image.at<uchar>(row + 1, col))center_lbp += 64;//8位二进制数第6位置1 if (center <= Image.at<uchar>(row + 1, col + 1))center_lbp += 128; //8位二进制数第7位置1 //把center处计算好的LBP值存放在lbp图像的相应位置lbp.at<uchar>(row, col) = center_lbp; }}cv::imshow("LBP纹理图", lbp);waitKey(10);cv::imshow("灰度图", Image);waitKey(10);return lbp;}

四、项目结果

原图:

灰度图:

纹理特征图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。