试图在Matlab中找到图像的一部分的质心

时间:2013-11-27 18:14:00

标签: matlab image-processing centroid

我正在尝试找到一种方法在Matlab中围绕图像的一部分绘制一个框,并找到该图像的质心。理想情况下,我希望“新”部分显示在我的原始图像旁边,然后我可以看到该“新”图像的质心。

这是我的代码:

% --- Executes on button press in pushbutton15.
function pushbutton15_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton15 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
A = imread('PET_MRI_Brain_Tumor.jpg');
Z = imshow(A)
Ibw = im2bw(A);
Ibw = imfill(Ibw,'holes');
Ilabel = bwlabel(Ibw);
stat = regionprops(Ilabel,'centroid');
imshow(Z); hold on;
for x = 1: numel(stat)
    plot(stat(x).Centroid(1),stat(x).Centroid(2),'bx');
end
e = imellipse(gca,[55 10 120 120])
BW = createMask(e,Z)

这是我试图将面具放在上面并找到该部分的质心的图像。

enter image description here

1 个答案:

答案 0 :(得分:0)

一旦你有这样的BW面具:

e = imellipse(gca,[55 10 120 120])
BW = createMask(e,Z)

或使用任何其他方法创建的(例如imfreehand或某种类型的细分算法),您可以使用'regionprops':

s = regionprops(BW, 'Centroid');

如果BW图像中只有一个区域/“区域”,则质心只是:

s(1).Centroid