Matlab找到相邻像素

时间:2014-04-04 13:39:39

标签: matlab

如何在图像中的位置(x,y)找到某个像素的周围像素,然后找到外部像素。

然后我需要将周围像素和外部像素与中心像素(x,y)进行比较。

任何人都可以帮我吗?我应该使用3x3社区吗?

由于

N = 16;
info = repmat(struct, ceil(size(Z, 1) / N), ceil(size(Z, 2) / N)); %creates an array of structs consisting of an m-by-n tiling 
for row = 1:N:size(Z, 1)%loop through each pixel in the image matrix
    for col = 1:N:size(Z, 2)
    r = (row - 1) / N + 1;% store the row index for each window
    c = (col - 1) / N + 1;%store the col index for each window 

    imgWindow = Z(row:min(end,row+N-1), col:min(end,col+N-1));
    largest = max(imgWindow(:));
    [rLarg, cLarg] = find(imgWindow == largest, 1, 'first');

    window(r, c).largest = largest;
    window(r, c).row = rLarg + row - 1;
    window(r, c).col = cLarg + col - 1;



  end
   end

200 034 234 245 211 222 214 245 234 234 211 222 211 245 234 234 
200 234 234 245 110 222 211 245 234 234 211 222 211 245 234 234 
201 234 234 245 211 222 211 205 134 234 211 222 291 245 231 234 
239 234 234 245 211 222 241 245 214 234 211 222 211 245 234 234 
221 234 234 245 111 222 251 245 234 234 211 222 111 245 234 234 
221 234 214 245 231 122 211 245 234 204 211 222 211 245 234 234 
014 034 034 245 211 222 211 245 234 234 211 222 218 245 234 234 
233 234 214 241 211 245 219 245 114 234 211 222 211 245 234 234 
233 234 244 245 231 222 111 245 234 234 211 222 211 245 234 234 
221 234 234 245 211 222 201 *249 234 234 211 222 208 245 234 234 
222 234 231 245 211 222 215 245 239 234 211 222 211 245 234 234 
222 234 234 245 111 222 219 245 234 234 211 222 111 245 234 234 
211 234 234 245 211 222 214 245 234 234 111 222 211 245 234 234 
245 234 234 245 211 222 211 245 234 234 211 222 291 245 234 234 
133 234 234 245 211 222 111 245 234 234 211 222 211 245 234 190 
234 234 234 245 211 222 211 245 234 234 211 222 211 245 234 234 

1 个答案:

答案 0 :(得分:0)

不确定这是你想要的,但是在这一行之后:

[rLarg, cLarg] = find(imgWindow == largest, 1, 'first');

您拥有社区中心的位置,然后您可以访问该社区:

Nborhood=[imgWindow(rLarg-1:rLarg+1, cLarg-1)', imgWindow([rLarg-1 rLarg+1], cLarg)', imgWindow(rLarg-1:rLarg+1, cLarg+1)'] 

注意:您需要编写一个条件来处理[rLarg, cLarg]为边框像素的情况。