How to select a pixel and get its surrounding eight neighbors using nearest neighbor?

2 次查看(过去 30 天)
How to select a pixel and get its surrounding eight neighbors using nearest neighbor?
The input image is as follows:

回答(1 个)

Image Analyst
Image Analyst 2016-4-27
use ginput to get the coordinate:
[x, y] = ginput(1);
row = round(y);
col = round(x);
neighbors = [grayImage(row-1, col-1);...
grayImage(row-1, col-1);...
grayImage(row-1, col);...
grayImage(row-1, col+1);...
grayImage(row, col-1);...
grayImage(row, col+1);...
grayImage(row+1, col-1);...
grayImage(row+1, col);...
grayImage(row+1, col+1)];
You can put them in whatever order you find convenient.
  2 个评论
Jannie Sy
Jannie Sy 2016-4-28
Thanks ImageAnalyst.
After obtaining its 8 neighbors, how do I subject these to voting? I should test the chosen pixel by assigning to a specific class if that class gets four or more votes. Otherwise, the pixel will maintain its class.
Image Analyst
Image Analyst 2016-4-29
编辑:Image Analyst 2016-4-29
I have no idea. Evidently you've read some paper that says you're supposed to get "votes" from neighboring pixels, but we have no knowledge of that paper obviously, or how it determines "votes". You don't even have a classified image at this point - it's just a simple gray scale image, not one with "classes" where each pixel is classified into one class like "road", "house", "ground", "vehicle", "water", or whatever.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by