• wijdoy
    了解作者
  • C/C++
    开发工具
  • 12.4MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 3
    下载次数
  • 2020-05-20 20:37
    上传日期
使用自适应对比度增强算法对眼底图像中的血管进行增强处理 。
ACE眼底血管提取.zip
内容介绍
//#include <iostream> //#include <opencv2/opencv.hpp> // //using namespace cv; //using namespace std; // //Mat matrixWiseMulti(Mat &m1, Mat &m2){ // Mat dst = m1.mul(m2); // return dst; //} // // ////float MaxCG:对高频成分的最大增益值,int n:局部半径,int C:对高频的直接增益系数 //void ACE(Mat &src, int C = 3, int n = 3, float MaxCG = 7.5){ // int rows = src.rows; // int cols = src.cols; // // Mat meanLocal; //图像局部均值 // Mat varLocal; //图像局部方差 // Mat meanGlobal;//全局均值 // Mat varGlobal; //全局标准差 // // blur(src.clone(), meanLocal, Size(n, n)); // imshow("低通滤波", meanLocal); // Mat highFreq = src - meanLocal;//高频成分 // imshow("高频成分", highFreq); // // varLocal = matrixWiseMulti(highFreq, highFreq); // blur(varLocal, varLocal, Size(n, n)); // //换算成局部标准差 // varLocal.convertTo(varLocal, CV_32F); // for (int i = 0; i < rows; i++){ // for (int j = 0; j < cols; j++){ // varLocal.at<float>(i, j) = (float)sqrt(varLocal.at<float>(i, j)); // } // } // meanStdDev(src, meanGlobal, varGlobal); // Mat gainArr = 0.5 * meanGlobal / varLocal;//增益系数矩阵 // // //对增益矩阵进行截止 // for (int i = 0; i < rows; i++){ // for (int j = 0; j < cols; j++){ // if (gainArr.at<float>(i, j) > MaxCG){ // gainArr.at<float>(i, j) = MaxCG; // } // } // } // gainArr.convertTo(gainArr, CV_8U); // gainArr = matrixWiseMulti(gainArr, highFreq); // Mat dst1 = meanLocal + gainArr; // imshow("变增益方法", dst1); // Mat dst2 = meanLocal + C*highFreq; // imshow("恒增益方法", dst2); //} // // //Mat myACE(Mat &src, int n = 7, float MaxCG = 7.5){ // int rows = src.rows; // int cols = src.cols; // Mat dst(src.rows, src.cols, CV_8UC1, Scalar::all(0)); // // if (src.type() == CV_8UC1) // int aa = src.type(); // Mat meanLocal; // Mat varLocal; // Mat meanGlobal; // Mat varGlobal; // // blur(src.clone(), meanLocal, Size(n, n));//meanMask为图像局部均值 // Mat highFreq = src - meanLocal;//高频成分:x(i,j)-Mx(i,j) // // varLocal = matrixWiseMulti(highFreq, highFreq); // blur(varLocal, varLocal, Size(n, n)); //varMask为此时为图像局部方差 // //换算成局部标准差(开根号) // varLocal.convertTo(varLocal, CV_32F); // for (int i = 0; i < rows; i++){ // for (int j = 0; j < cols; j++){ // varLocal.at<float>(i, j) = (float)sqrt(varLocal.at<float>(i, j)); // } // } // meanStdDev(src, meanGlobal, varGlobal); //meanGlobal为全局均值 varGlobal为全局标准差,实际均是一个数 // Mat gainArr = 0.5 * meanGlobal / varLocal;//增益系数矩阵:G(i,j),可以直接令其为系数C(一般总是大于1) // //对增益矩阵进行截止 // for (int i = 0; i < rows; i++){ // for (int j = 0; j < cols; j++){ // if (gainArr.at<float>(i, j) > MaxCG){ // gainArr.at<float>(i, j) = MaxCG; // } // } // } // gainArr.convertTo(gainArr, CV_8U); // gainArr = matrixWiseMulti(gainArr, highFreq); // dst = meanLocal + gainArr; // //imshow("Lee改进的D方法", dst); // return dst; //} // //int main() //{ // const char* img_path = "D:\\fcq_proMatlab\\test_image\\fog\\5.jpg"; // Mat src = imread(img_path, 0); // imshow("src", src); // int C = 5; // int n = 7; // float MaxCG = 8; // ACE(src, C,n, MaxCG); // waitKey(); // return 0; //} // //
评论
    相关推荐
    • 基于C++语言的自适应均衡滤波
      用于LMS的自适应均衡滤波基于C++语言的自适应均衡滤波
    • 自适应信道均衡C++源程序
      自适应线性单元,模型结构,最小均方误差LMS算法
    • 自适应加权中值滤波 C 、C++编写
      代码纯C编写。效果还不错。比opencv自带的中值滤波效果好。
    • 自适应模糊PID代码 C++实现
      基于C++ 的模糊PID控制代码,参考许多论文制定的PID参数调整模糊规则,代码对于想了解这方面的人有一定的借鉴意义。但是不保证什么控制对象都能用,具体对象具体设计。
    • C++ 自适应通信环境ACE
      英文技术文档翻译的电子书 C++ 自适应通信环境
    • 自适应数字滤波器
      利用卡尔曼滤波方法进行数字滤波,VC++编程,利用了矩阵运算。
    • 自适应模糊PID代码 C++实现.zip
      基于C++ 的模糊PID控制代码,参考许多论文制定的PID参数调整模糊规则,代码对于想了解这方面的人有一定的借鉴意义。但是不保证什么控制对象都能用,具体对象具体设计
    • 自适应卡尔曼滤波C++代码 Adaptive Kalman Filter
      自适应卡尔曼滤波 Adaptive Kalman Filter,是指在利用测量数据进行滤波的同时,不断地由滤波本身去判断系统的动态是否有变化,对模型参数和噪声统计特性进行估计和修正,以改进滤波设计、缩小滤波的实际误差。...
    • 自适应脉冲压缩的C++实现
      Shannon D. Blunt 的经典目标探测算法的C++实现,需要用到 intel MKL运算库 ;运行时需要修改输入数据所在文件的位置,数据必须是8字节存储(double),或者修改读数据的那块代码,改成对应的格式
    • 自适应哈夫曼编码C++
      C++实现自适应(动态)哈夫曼编码,读入txt文本编码并将结果输出到指定txt文本中