how to do windowing in image using matlab?
Show older comments
how to do windowing in image using matlab?
2 Comments
SRI
on 3 Jul 2014
Hi shah Could you please clear with your question so that we can assist you with the solution
Sheema Khattak
on 4 Jul 2014
Answers (2)
Image Analyst
on 4 Jul 2014
0 votes
Try conv2(), imfilter(), or nlfilter(), or blockproc() depending on exactly what you want to do. conv2() and imfilter() are for linear filters. nlfilter is for any bizarre custom function you want write and apply to each window. blockproc() is if you want to process windows in "jumps" where it moves from one location to the next by more than 1 pixel.
5 Comments
Image Analyst
on 6 Jul 2014
shah, what's the status? Do you have it working? If not, post your image and the kind of filter you want to do, otherwise, mark the Answer as accepted.
Sheema Khattak
on 6 Jul 2014
Image Analyst
on 6 Jul 2014
I never use fwind1() or fwind2() - you don't need them to do linear filters since you can use conv2() and nlfilter() instead. conv2 is convolution which flips the kernel as convolution required. imfilter() just keeps the kernel as it is (doesn't flip) and multiplies and sums. Same as convolution except without the flip. Makes no different for symmetrical filters. fspecial is used to build kernels (filters) of certain patterns, like Gaussians. nlfilter() is used to build non-linear filters - something other than multiply and sum - which conv2() and imfilter() can't do.
Sheema Khattak
on 7 Jul 2014
Image Analyst
on 7 Jul 2014
No. To do that you need to do connected components labeling. But even before that you need to do image segmentation to find the "objects". See my Image Segmentation Tutorial: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
SRI
on 7 Jul 2014
clc;
close all;
input = imread('cameraman.tif');
[row,col] = size(input);
% minValue = mean(mean(input));
for i = 2:row-1
for j =2:col-1
outImage(i-1:i+1,j-1:j+1) = input(i-1:i+1,j-1:j+1)
% if outImage(i-1:i+1,j-1:j+1) < minValue % outImage(i-1:i+1,j-1:j+1) = 1;
% end
end
end
Hi shah you just apply any filter operation with this code because this will divide a image into 3 *3 matrix after that you can process as you wish
Categories
Find more on Image Filtering in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!