필터 지우기
필터 지우기

how to slid filter window of 3*3 over the pixels of image.

조회 수: 2 (최근 30일)
ravneet
ravneet 2014년 10월 10일
답변: Mohammad Abouali 2014년 10월 10일
can anyone plz tell me how to slid a filter window of 3*3 over the pixels of an image one by one.Suppose i have and image with pixels
A= 44 25 22 55 21 11 10 23 ; 35 43 2 23 45 66 86 97 ; 12 22 19 12 76 58 56 23 ; 21 23 43 12 65 75 55 75 ;
I want to slide a filter mask/window of 3*3 over these pixels of image .let the mask be
Mask= 1 1 1 ; 1 1 1 ; 1 1 1 ; plz tell me the coding how to slid this mask over pixels one by one. I have also attached PDF version if anyone know how to do the coading then plz help.

채택된 답변

Mohammad Abouali
Mohammad Abouali 2014년 10월 10일
use imfilter() it gives you more option than conv2.
For the border pixels instead of using zeros (as in conv2 case) you can define symmetric, replicate, or even circular boundary condition which gives you better results.
As image Analyst said, Another reason that imfilter is suggested in your case is that conv flips the mask. in your case it doesn't matter because you are using symmetric kernel. if you don't want to flip your kernel you should use cross correlation.
Check here and the graph to see how these two, i.e. convolution and cross-correlation, will produce different output.

추가 답변 (1개)

Geoff Hayes
Geoff Hayes 2014년 10월 10일
Ravneet - try using conv2. Using your example from above, we would do
A = [ 44 25 22 55 21 11 10 23
35 43 2 23 45 66 86 97
12 22 19 12 76 58 56 23
21 23 43 12 65 75 55 75];
Mask = [ 1 1 1
1 1 1
1 1 1];
C = conv2(A,Mask,'same');
where C would be
C =
147 171 170 168 221 239 293 216
181 224 223 275 367 429 430 295
156 220 199 297 432 582 591 392
78 140 131 227 298 385 342 209
The same shape parameter ensures that the output matrix is the same size as A. Note that if the window falls outside of the matrix A, then zeros are used in place (so A is zero-padded).
  댓글 수: 1
Image Analyst
Image Analyst 2014년 10월 10일
imfilter() in the Image Processing Toolbox does the same thing and gives you the option of flipping the kernel or not. For this case (all 1's) it doesn't matter but if you ever change the mask Ravneet to something that's not symmetrical, and wonder why the numbers don't match up, then brush up on the definition of convolution, or flip your mask or use imfilter.

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

Community Treasure Hunt

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

Start Hunting!

Translated by