如何在图像中的位置(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
答案 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]
为边框像素的情况。