Если вы хотите другой ответ, который не использует regionprops
, если предположить, что черная массой является только объекта на изображении, вы можете найти минимальную остовную ограничивающий параллелепипед, находя верхние левые и нижние правые углы объект, затем найдите ширину и высоту, вычитая самый правый столбец и самый левый столбец и нижний самый ряд строк и самый верхний из всех, что считается пикселем объекта соответственно. Если предположить, что бинарное изображение хранится в L
, выполните следующие действия:
[r,c] = find(~L);
width = max(c) - min(c) + 1;
height = max(r) - min(r) + 1;
find
находит все места строк и столбцов, которые отличны от нуля. Таким образом, мне пришлось инвертировать ваше изображение, чтобы все нулевые позиции стали ненулевыми. r
и c
- это векторы столбцов, которые возвращают расположение строк и столбцов того, что отличное от нуля, затем выполняется логика, указанная выше.
Мое изображение - это левое, и я просто продемонстрировал, что хочу на правильном. Итак, могу ли я найти эти размеры с помощью «BoundingBox» на левом изображении? – Sam
@Sam: * «Длина ваших синих и красных линий будет третьим и четвертым элементами поля« BoundingBox' соответственно ». * Я не думаю, что в этом утверждении есть место для неправильной интерпретации. Это четко прописано. – rayryeng
О да, и BTW Suever, хорошая работа :) +1. – rayryeng