资源简介
压缩相位恢复ADMM-L1相位恢复 opencv实现
代码片段和文件信息
#include “subfunction.h“
#define ALPHA 0.1
#define BETA 0.65
#define LAMBDA 9
#define ITERMAX 100
#define SIGAMA 3
int main()
{
system(“color 4f“);
Mat *Image = new Mat;
*Image = imread(“E:/pic/Satellite.bmp“ 0);
if (Image->empty())
{
cout << “can‘t read Iamge“ << endl;
return -1;
}
Image->convertTo(*Image CV_32FC1);
/************初始化**************/
Mat Fabsmaskxstemp[2]temp1s1angelsFabsFx;
Mat y = Mat::zeros(Image->size() CV_32FC2);
Fabs = getFabs(*Image);
mask = getRandnMask(Image->size());
Fabs = Fabs.mul(mask);
Mat b = Fabs;
Mat z = getRandnPhaseImage(FabsSIGAMA);
int iter = 0;
/*******************************/
while (iter < ITERMAX){
/************updata x***************/
z = z - (1 / ALPHA)*y;
dft(z temp1 DFT_INVERSE + DFT_SCALE);
split(temp1 temp);
temp[0] = softThreshold(temp[0] ALPHA);
x = max(0 temp[0]);
/************updata z***************/
Fx = fft2(x);
s = Fx + (1 / ALPHA)*y;
split(stemp);
magnitude(temp[0] temp[1] sFabs);
phase(temp[0] temp[1] angel);
temp[0] = sFabs.mul(mask);
temp[1] = sFabs.mul(1 - mask);
temp1 = (LAMBDA*b + ALPHA*temp[0]) / (LAMBDA + ALPHA);
temp1 = temp1 + temp[1];
polarToCart(temp1 angel temp[0] temp[1]);
merge(temp 2 z);
/************updata y***************/
y = y + BETA*ALPHA*(Fx - z);
/***********************************/
iter = iter + 1;
cout << “iter. = “ << iter << endl;
}
displayImage(*Image “原图“);
displayImage(x “恢复图像“);
waitKey(0);
system(“pause“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-05-18 21:52 CRP\
目录 0 2016-05-18 21:52 CRP\CRP\
文件 4375 2016-05-18 15:09 CRP\CRP\CRP.vcxproj
文件 1164 2016-05-18 15:09 CRP\CRP\CRP.vcxproj.filters
目录 0 2016-05-18 21:52 CRP\CRP\Debug\
文件 2471 2016-05-18 21:52 CRP\CRP\Debug\CRP.log
目录 0 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\
文件 26570 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\CL.read.1.tlog
文件 1258 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\CL.write.1.tlog
文件 157 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\CRP.lastbuildstate
文件 1194 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\cl.command.1.tlog
文件 2142 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\li
文件 5280 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\li
文件 426 2016-05-18 21:52 CRP\CRP\Debug\CRP.tlog\li
文件 226676 2016-05-18 21:52 CRP\CRP\Debug\main.obj
文件 256012 2016-05-18 19:11 CRP\CRP\Debug\subfunction.obj
文件 658432 2016-05-18 21:52 CRP\CRP\Debug\vc120.idb
文件 946176 2016-05-18 21:52 CRP\CRP\Debug\vc120.pdb
文件 1603 2016-05-18 21:52 CRP\CRP\main.cpp
文件 2087 2016-05-18 19:11 CRP\CRP\subfunction.cpp
文件 416 2016-05-18 19:11 CRP\CRP\subfunction.h
文件 14876672 2016-05-18 21:52 CRP\CRP.sdf
文件 955 2016-05-18 15:06 CRP\CRP.sln
文件 24064 2016-05-18 21:52 CRP\CRP.v12.suo
目录 0 2016-05-18 19:07 CRP\Debug\
文件 102400 2016-05-18 21:52 CRP\Debug\CRP.exe
文件 2041616 2016-05-18 21:52 CRP\Debug\CRP.ilk
文件 2198528 2016-05-18 21:52 CRP\Debug\CRP.pdb
评论
共有 条评论