Skip to content
Permalink
Browse files

updated README.txt

bugfixes
  • Loading branch information...
HendrikMuenster committed Apr 4, 2017
1 parent 6dddf3e commit 3ad26834c5d2e9511f77254dfc3ffa02d0cfd7b6
Showing with 15 additions and 48 deletions.
  1. +1 −0 .gitignore
  2. +7 −30 README.txt
  3. +2 −2 examples/exampleTGV.m
  4. +1 −0 flexBox.m
  5. +0 −4 terms/regularizer/L2divergence.m
  6. +2 −10 terms/regularizer/basicDivergence.m
  7. +2 −2 testfileCPP.m
@@ -15,3 +15,4 @@ slprj/

# Session info
octave-workspace
/testfileCPP.m
@@ -8,10 +8,10 @@
% Contact: hendrik.dirks@wwu.de
%
%
% Version 1.04
% Date: 2016-12-16
% Version 1.1
% Date: 2017-04-04

% FlexBox is copyright �2016 by Hendrik Dirks and is distributed under the terms of the GNU General Public License (GPL) version 3 (or later).
% FlexBox is copyright �2016-2017 by Hendrik Dirks
%
% If you plan to distribute the software (commercially or not). Please contact me for more information.

@@ -39,34 +39,11 @@ If you use this toolbox please use the following citation
%%% Compilation %%%
%%%%%%%%%%%%%%%%%%%

C++:
To compile the C++ module, simply run the MATLAB script "compileMexModule.m" in the folder "CPP_module"

CUDA:
To compile the Cuda module, open the "compileCudaModule.m" and change the given PATH variables according to your computer. Afterwards, run "compileCudaModule.m".

Requirements:
The script assumes, that you have installed a full version of Microsoft Visual Studio 20XX, which is connected to your CUDA SDK. The Visual Studio version must coincide with your Matlab standard C++ compiler.
Download the C++ submodule and create compile files using cmake.

%%%%%%%%%%%%%%%%%%%
%%%%%% Issues %%%%%
%%%%%%%%%%%%%%%%%%%
Issues for University of M�nster users:
There are some known problems for CUDA computers at the University of M�nster. You may have to preload libraries. To do so, simply start Matlab with:
env LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/cuda-7.5/lib64/libcudart.so.7.5 /usr/local/cuda-7.5/lib64/libcusparse.so.7.5" matlab

%%%%%%%%%%%%%%%%%
%%% Changelog %%%
%%%%%%%%%%%%%%%%%
16.12.2016 (Version 1.04)
- new type of terms 'constraint' added. For now, box-constraint, non-neg. and non-pos constraints are available
- fused the basicDualizedDataterm.m and basicDualizedOperator.m. An operator is now a data term with f=0
- new MATLAB->CPP wrapper
- several bugfixes

14.07.2016 (Version 1.03)
- CUDA module added

07.04.2016 (Version 1.02)
- Added FFT-based convolution operator, downsampling and concatenation operator
- Added examples for deblurring and operator concatenation
- Speed improvements for C++ version
31.03.2016 (Version 1.01)
- generalized the concept of matrices to linear operators and created classes for gradient, diagonal, identity and zero operator for MATLAB and C++ version to improve speed and flexibility
@@ -14,8 +14,8 @@
figure(2);imagesc(imageNoisy);axis image;colormap(gray);title('Noisy Image')
%% denoising with tgv
main = flexBox;
main.params.tryCPP = 0; %change, if C++ module is compiled
main.params.tol = 1e-6;
main.params.tryCPP = 1; %change, if C++ module is compiled
main.params.tol = 1e-5;

%add primal vars u,w
numberU = main.addPrimalVar(size(image));
@@ -293,6 +293,7 @@ function init(obj)
%sum up tau
for j=1:numel(obj.DcP{i})
indexTmp = obj.DcP{i}(j);

obj.params.tau{ indexTmp } = obj.params.tau{ indexTmp } + obj.duals{i}.myTau{j};
end

@@ -10,9 +10,5 @@
function obj = L2divergence(alpha,dims,varargin)
obj = obj@basicDivergence(alpha,dims,varargin);
end

%function call to preallocate usefull things
function init(varargin)
end
end
end
@@ -17,18 +17,10 @@
usedims = ones(numel(dims),1);
end

if (exist('discretization','var') && strcmp(discretization,'backward'))
opTmp = generateBackwardGradND( dims,ones(numel(dims),1) );
else
opTmp = generateForwardGradND( dims,ones(numel(dims),1) );
end

opNum = 1;
for i=1:numel(dims)
if (usedims(i) == 1 && dims(i) ~= 1)
operatorList{opNum} = opTmp( (i-1)*prod(dims) + 1 : i * prod(dims),: );
opNum = opNum + 1;
end
operatorList{opNum} = gradientOperator(dims,i,varargin);
opNum = opNum + 1;
end

%numPrimals is numel(operatorList)
@@ -64,8 +64,8 @@
main.addTerm(frobeniusOperator(10,1,speye(numel(image))),numberU);

%vector field
main.addTerm(L1divergence(0.5,size(image),'usedims',[0,1]),numberU);
main.addTerm(L2divergence(0.5,size(image),'usedims',[0,1]),numberU);
main.addTerm(L1divergence(0.5,size(image),'usedims',[0,1]),[numberU,numberU2]);
main.addTerm(L2divergence(0.5,size(image),'usedims',[0,1]),[numberU,numberU2]);
main.addTerm(L1curl(0.5,size(image)),[numberU,numberU]);
main.addTerm(L2curl(0.5,size(image)),[numberU,numberU]);

0 comments on commit 3ad2683

Please sign in to comment.
You can’t perform that action at this time.