just a question
1 次查看(过去 30 天)
显示 更早的评论
let's say i have the image:
img =
[1 0 -1;
0 -1 0;
1 1 -1];
and I'd like to get the values on the 8-connected area around the center:
vals = [0 -1 0 1 0 1 1 -1];
and then get the most common and least common values, and if there are two, to pick the lowest value.
I can only thing to do:
meh = im2col(img,[3 3],'distinct');
meh(5,:) = [];
answer = mode(meh);
but i can't figure out a way to get the least common thing unless i do ~mode a bunch of times...
Any ideas? Thanks :)
0 个评论
采纳的回答
Image Analyst
2012-5-29
You could use blockproc and have the blockproc function call hist. But you know that there could be up to 8 values that are the least common. What if your 8 neighbors are 8 unique values? What do you want to do then?
5 个评论
Image Analyst
2012-5-29
Yes, you could do the same thing with nlfilter and it is easier to understand. Good point.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!