LBP等价模式
来源:互联网 发布:windows视频播放器 编辑:程序博客网 时间:2024/05/23 21:55
图像特征LBP原理及C++实现可以直接参考小路孩的博客点击打开链接,博客中很详细的介绍了各种LBP特征的实现原理,并且有对应的C++代码。
补充一种CS-LBP(中心对称)实现:
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv;using namespace std;Mat CSLBP(Mat & src, double * lbp_hist){Mat img;src.copyTo(img);uchar UTable[16];// 计算二进制表示,并通过查表的方式,获取其对应的等价模式下的值 for (int i = 1; i < img.rows - 1; i++){for (int j = 1; j < img.cols - 1; j++){uchar code = 0;for (int m = 0; m < 4; m++){code |= (src.at<uchar>(i - 1, j - 1) >= src.at<uchar>(i + 1, j + 1)) << 0;code |= (src.at<uchar>(i, j - 1) >= src.at<uchar>(i, j + 1)) << 1;code |= (src.at<uchar>(i + 1, j - 1) >= src.at<uchar>(i - 1, j + 1)) << 2;code |= (src.at<uchar>(i + 1, j) >= src.at<uchar>(i - 1, j)) << 3;}img.at<uchar>(i, j) = code;}}for (int i = 1; i < img.rows - 1; i++){for (int j = 1; j < img.cols - 1; j++){UTable[img.at<uchar>(i, j)]++;}}// 查找最大值 float max_hist_val = 0;for (int i = 0; i < 16; i++){if (max_hist_val < UTable[i]){max_hist_val = UTable[i];}}//cout << max_hist_val << endl; for (int i = 0; i < 16; i++){lbp_hist[i] = 1.0 * UTable[i] / max_hist_val;//cout << "lbp_hist: " << lbp_hist[i] << endl; }Mat LBP_hist = Mat::zeros(32, 17 * 2, CV_8U);Mat LBP_hist_color;cvtColor(LBP_hist, LBP_hist_color, COLOR_GRAY2BGR);for (int i = 0; i < 16; i++){cout << 1 - UTable[i] << endl;rectangle(LBP_hist_color,Point(i * 2, 32),Point((i + 1) * 2, int((1 - lbp_hist[i]) * 32)),Scalar(255, 0, 0));}return LBP_hist_color;}int main(){Mat src = imread("1.jpg");Mat gray;cvtColor(src, gray, CV_BGR2GRAY);double lbp_hist[16] = { 0 };Mat test = CSLBP(gray, lbp_hist);namedWindow("src", 0);resizeWindow("src", 300, 300);namedWindow("test", 0);resizeWindow("test", 300, 300);imshow("src", src);imshow("test", test);waitKey();return 0;}
效果如下:
阅读全文
0 0
- LBP等价模式
- LBP等价模式详解
- OPENCV-LBP特征(等价模式)
- 关于LBP特征等价模式的解释
- LBP等价模式降维处理
- LBP, Uniform LBP 等价模式个数的推导
- LBP等价模式之ULBP的计算程序
- LBP中等价模式即Uniform Pattern为什么是P*(P-1)+2维向量?
- LBP中等价模式即Uniform Pattern为什么是P*(P-1)+2维向量?
- lbp特征与均值模式lbp特征
- LBP(局部二进制模式)
- LBP(局部二进制模式)
- 灰度不变性LBP( gray scale invariant) 旋转不变性LBP(rotation invariant)旋转不变等价LBP(rotation & uniform invarian )
- 灰度不变性LBP( gray scale invariant) 旋转不变性LBP(rotation invariant)旋转不变等价LBP(rotation & uniform invarian )
- LBP(局部二值模式)
- lbp-
- lbp
- LBP
- Swift 泛型
- JavaScript基础之koa
- 还记得高中时奋斗的模样吗?
- 一元多项式加乘运算
- ajax 循环下拉列表及默认选择
- LBP等价模式
- Golang学习之net/http包
- 数据结构思维 第十一章 `HashMap`
- 【VIVADO使用2】如何手动修改hdf文件
- VS2013 + QT5.7.0静态编译 错误 .NMAKE:fatal error U1077. return code 0x2,使用 类 模板 需要 模板 参数列表
- 设半径r=1.5,圆柱高h=3,求圆
- 使用泛型的好处是什么
- iOS 打印 AQDefaultDevice (173): skipping input stream 问题
- java static 精准解读