just a question
2 次查看(过去 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 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 3-D Volumetric Image Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!