FPGA ISP SmartBlur de-noising

FPGA ISP SmartBlur de-noising

This algorithm has certain edging image denoising, to implement low complexity in the FPGA, Matlab core code is given to the following:

%% 浮点仿真

cent_x = ceil(Rad/2);
cent_y = ceil(Rad/2);
roi = zeros(Rad, Rad);
SimCnt = 0;
img_out = img_in;
for ch = 1:1:d
    for rows = 1:1:m-Rad
        for cols = 1:1:n-Rad
            SimCnt = 0;
            SimAcc = 0;
            roi = img_in(rows:rows+Rad-1,cols:cols+Rad-1, ch);
           %% 相似点匹配
            for ii=1:1:Rad
               for jj=1:1:Rad
                    if abs(roi(ii, jj)- roi(cent_x,cent_y)) < Th
                        SimCnt = SimCnt + 1;
                        SimAcc = SimAcc + roi(ii, jj);
                    else
                        SimCnt = SimCnt;
                        SimAcc = SimAcc;
                    end  
               end
            end
            %% 均衡
            img_out(rows, cols, ch) = SimAcc/SimCnt;
        end
    end
end

FPGA implementation of the process, the idea is as follows:

  • Control linebuffer N * N matrix to form a matrix
  • Minus all the elements in the matrix central element, the absolute value
  • Statistical absolute value is less than the threshold number of pixels, while the pixels accumulated
  • Averaging

If the simulation feel the effects, come back to a praise! ! !

Published 19 original articles · won praise 1 · views 574

Guess you like

Origin blog.csdn.net/wuyanbei24/article/details/104864584