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

6 views (last 30 days)
How to select a pixel and get its surrounding eight neighbors using nearest neighbor?
The input image is as follows:

Answers (1)

Image Analyst
Image Analyst on 27 Apr 2016
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 Comments
Jannie Sy
Jannie Sy on 28 Apr 2016
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 on 29 Apr 2016
Edited: Image Analyst on 29 Apr 2016
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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!