2015-08-12 4 views
0

Я хочу рассчитать высоту и ширину отдельных объектов, но я получаю 0 значение.Как получить высоту и ширину объекта?

Вот изображение, которое состоит из объектов, я смотрю на:

enter image description here

Я попытался следующий код:

clear all; 
close all; 
clc; 
%% start 
filename = 'untitled.png'; 
I = imread(filename); 
info = imfinfo(filename); 
thres = graythresh(I); 
I2 = ~(im2bw(I, thres)); 
cmp = bwconncomp(I2); 
S = regionprops(cmp, {'BoundingBox'}); 
bbox = vertcat(S.BoundingBox); 
x = bbox(:,3); 
y = bbox(:,4); 
res = info.ResolutionUnit; 
resX = info.XResolution; 
resY = info.YResolution; 
if strcmp(res, 'Inch') 
lebar = 2.54 * x/resX; 
tinggi = 2.54 * y/resY; 
else 
lebar = x/resX; 
tinggi = y/resY; 
end 
fprintf('X Resolution = %.2f %s\n', resX, res); 
fprintf('Y Resolution = %.2f %s\n', resY, res); 
disp('Size of Object:'); 
fprintf('Width = %.2f cm\n', lebar); 
fprintf('Height = %.2f cm\n', tinggi); 

Кроме того, как я удалить прямоугольник в изображении ?

+3

насчет показывая нам, что без названия изображения, поэтому мы можем попробовать его? Благодаря! –

+2

Если эллипс может полностью содержаться внутри прямоугольника, а эллипс не подвержен вращению, ширина и высота эллипса будут такими же, как и ограничивающий прямоугольник, который содержит его. – rayryeng

+0

добавлено изображение ввода –

ответ

0

Исправленный код

clear all; 
close all; 
clc; 
%% start 
filename = 'untitled.png'; 
I = imread(filename); 
info = imfinfo(filename); 
thres = graythresh(I); 
I2 = im2bw(I, thres); 
cmp = bwconncomp(I2); 
S = regionprops(cmp, {'BoundingBox'}); 
bbox = vertcat(S.BoundingBox); 
x = bbox(:,3); 
y = bbox(:,4); 
res = info.ResolutionUnit; 
resX = info.XResolution; 
resY = info.YResolution; 
if strcmp(res, 'Inch') 
lebar = 2.54 * x/resX; 
tinggi = 2.54 * y/resY; 
else 
lebar = x/resX; 
tinggi = y/resY; 
end 
fprintf('X Resolution = %.4f %s\n', resX, res); 
fprintf('Y Resolution = %.4f %s\n', resY, res); 
disp('Size of Object:'); 
fprintf('Width = %.4f cm\n', lebar); 
fprintf('Height = %.4f cm\n', tinggi); 
%% end 
Смежные вопросы