首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定位图像中的一组像素

定位图像中的一组像素
EN

Stack Overflow用户
提问于 2014-04-11 18:52:26
回答 4查看 1.8K关注 0票数 2

我正在做一些低层次的图像处理项目,我需要定位一个物体的位置。在这种情况下,它是一颗彗星。我玩了一下阈值,得到了一个非常接近二进制的图像,但我下一步需要的是在一大组白色像素的中间定位一个固定点,这样它就可以被跟踪了。你知道该怎么做吗?这是我得到的屏幕截图。

Link to the photo

有没有办法过滤掉图片上所有的白点?是不是有一种函数可以给所有的小群体赋值"0"?提前感谢!

EN

回答 4

Stack Overflow用户

发布于 2014-04-11 19:12:20

也许你在找这个-

代码

代码语言:javascript
复制
%%// Read in image and convert to binary
img = imread(IMAGE_FILEPATH);
BW = im2bw(img);

%%// Get only the comet blob, which is the biggest blob
[L, num] = bwlabel(BW);
counts = sum(bsxfun(@eq,L(:),1:num));
[~,ind] = max(counts);
BW = (L==ind);

%%// Find the centroid of the comet blob
stats = regionprops(BW, 'Centroid');
center_point = stats.Centroid

输出

代码语言:javascript
复制
center_point =

   56.7471  131.9373

注意:还有另一个问题-- ,它与这个案例有关。

票数 3
EN

Stack Overflow用户

发布于 2014-04-11 19:10:30

MATLAB regionprops是你的朋友,你的形象对于你想做的事情来说是足够好的。

regionprops做的正是你需要的(你得到了重心的X,Y)。由于它还提供了面积,因此您可以过滤结果并仅保留图像中最大的对象。

票数 2
EN

Stack Overflow用户

发布于 2014-04-11 19:12:35

你的问题似乎已经用regionprops解决了,就像其他人已经提出的那样,但是如果你对消除图像中的小白色伪像感兴趣的话:

您可以对您的二进制图像应用一个或多个步骤的erosion,从而消除小白点(但也减小了您的彗星的大小!)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23010576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档