بذست آوردن مرکز یک شکل در پردازش تصویر
سلام
جهت بدست آوردن مرکز یک blob روش من بدین صورت است که rectangle ی که blob رو احاطه می کند را بدست آورده و سپس مرکز این recangle رو بعنوان مرکز blob در نظر می گیریم البته در همه موارد جواب صحیح نیست
آیا روش دیگری هم وجود دارد که مرکز را دقیق تر محاسبه نماید
1 ضمیمه
نقل قول: بذست آوردن مرکز یک شکل در پردازش تصویر
در ابتدا جهت توضیحات تکمیلی به این پست نگاه کنید.
اون روشی که شما ذکر کردید فوق العاده به نویز حساسه و در موارد نویزی دقت جوابش پایینه.
اما روش آماری که برای این کار توصیه میشه استفاده از spatial moment می باشدضمیمه 78012
برای background مقدار f(x,y)=0 و برای foreground مقدار f(x,y)=1 می باشد
حال مقادیر m00 و m01 و m10 را با توجه به فرمول مذکور بدست آورید حال برای بدست آوردن مرکز ثقل object از رابطه زیر استفاده نماید ( c مرکز ثقل )
Cx = m10/m00
Cy = m01 / m00
نقل قول: بذست آوردن مرکز یک شکل در پردازش تصویر
x مرکز رو با میانگین x های همه نقاط شکل، و
y مرکز رو با میانگین y های همه نقاط شکل حساب کن.
function [yc, xc] = centermass(image)
[y, x] = find(image == 1);
xc = sum(x) / size(x, 1);
yc = sum(y) / size(y, 1);
end
نقل قول: بذست آوردن مرکز یک شکل در پردازش تصویر
بدین صورت
point centerOfMass(image)
{
M00 = 0;
M10 = 0;
M01 = 0;
for(int i=0;i< image->height;i++)
for(int j=0;j <image->width;j++)
{
M00 += image->pixels(j,i);
M10 += i * image->pixel(j,i);
M01 += j * image->pixel(j,i);
}
point pnt;
pnt.x = M10 / M00;
pnt.y = M01 / M00;
return pnt;
}