//#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;
//}
//
//
ACE眼底血管提取
4星 · 超过85%的资源 需积分: 48 190 浏览量
2017-10-31
22:33:39
上传
评论 2
收藏 12.38MB ZIP 举报
Naruto_Q
- 粉丝: 2337
- 资源: 48
最新资源
- IMG_20240425_120538.jpg
- My Complete Genome_6k Base-Pairs of Phenotype SNPs_Complete Raw Data.zip
- qt 的mqtt测试demo
- 移动应用开发教程-zip.zip
- mosquitto-2.018-install-windows-x64
- FTPServer FTP 服务器,绿色免安装,单文件
- 梦畅语音点名软件,上课点名
- 利用ADNI数据集和标签,在tensorflow框架上使用tensorlayer接口,通过架构u-net实现海马体的分割
- Kutools for Word v9.0 office word 插件
- 修复Windows 10 LTSC 2021资源占用率高
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈