Background estimation of image in matlab
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I want to estimate background of an image using iterative Savitzky-Golay smoothing. So can anyone help me in this by providing me the code of this. Or if someone has code for background estimation using some other technique, that is also acceptable. Regards
2 comentarios
Image Analyst
el 4 de Oct. de 2011
What do you mean by iterative? Do you mean the x direction first followed by the y direction?
Pavl M.
el 14 de Nov. de 2011
I work on background estimation using histogram processing. I've assumed that that the background can be easily estimated from histogram ( run several examples provided support ).I have one method implemented in C++ and second option is under dev. ( need to compute centroid of area under histo ) Have anybody made something similar?
Respuestas (2)
Image Analyst
el 4 de Oct. de 2011
See my demo:
% Filter using Savitzky-Golay filtering.
% By Image Analyst
% Change the current folder to the folder of this m-file.
if(~isdeployed)
cd(fileparts(which(mfilename)));
end
clc; % Clear command window.
clear; % Delete all variables.
close all; % Close all figure windows except those created by imtool.
imtool close all; % Close all figure windows created by imtool.
workspace; % Make sure the workspace panel is showing.
fontSize = 14;
% Read in standard MATLAB gray scale demo image.
% imageArray = imread('football.jpg');
imageArray = imread('cameraman.tif');
imageArray = double(imageArray);
[rows columns numberOfColorBands] = size(imageArray);
subplot(2, 2, 1);
imshow(imageArray, [0 255]);
title('Original Grayscale Image', 'FontSize', fontSize);
set(gcf, 'Position', get(0,'Screensize')); % Enlarge figure to full screen.
set(gcf,'name','Savitzky-Golay Filter Demo by ImageAnalyst','numbertitle','off')
% Apply the Savitzky-Golay filter.
% First apply it in the vertical (row) direction.
k = 1; % Order of the polynomial
windowSize = 25;
verticallySmoothedImage = sgolayfilt(imageArray, k, windowSize, [], 1);
subplot(2, 2, 2);
imshow(verticallySmoothedImage, [0 255]);
title('Savitzky-Golay filtered in the vertical direction only', 'FontSize', fontSize);
% Apply the Savitzky-Golay filter.
% First apply it in the vertical (row) direction.
k = 1; % Order of the polynomial
windowSize = 25;
horizontallySmoothedImage = sgolayfilt(imageArray, k, windowSize, [], 2);
subplot(2, 2, 3);
imshow(horizontallySmoothedImage, [0 255]);
title('Savitzky-Golay filtered in the horizontal direction only', 'FontSize', fontSize);
doublySmoothedImage = sgolayfilt(verticallySmoothedImage, k, windowSize, [], 2);
subplot(2, 2, 4);
imshow(doublySmoothedImage, [0 255]);
title('Savitzky-Golay filtered in both directions', 'FontSize', fontSize);
0 comentarios
Pavl M.
el 14 de Nov. de 2011
Sorry there is no full answer at this my post but it can get closer the solution. I work on background estimation using histogram processing. I've assumed that a background can be easily estimated from histogram ( run several examples provided support ).I have one method implemented in C++ and second option is under dev. ( need to compute centroid of an area under histogram ) Have anybody made something similar? Thanks in advance.
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!