필터 지우기
필터 지우기

Background estimation of image in matlab

조회 수: 10 (최근 30일)
Khawaja Asim
Khawaja Asim 2011년 10월 4일
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
Image Analyst
Image Analyst 2011년 10월 4일
What do you mean by iterative? Do you mean the x direction first followed by the y direction?
Pavl M.
Pavl M. 2011년 11월 14일
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?

댓글을 달려면 로그인하십시오.

답변 (2개)

Image Analyst
Image Analyst 2011년 10월 4일
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);

Pavl M.
Pavl M. 2011년 11월 14일
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.

카테고리

Help CenterFile Exchange에서 Signal Operations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by