Estou usando a função regionprop no matlab para obterMajorAxisLength de uma imagem. Eu acho que logicamente este número não deve ser maior que sqrt (a ^ 2 + b ^ 2) em que a abd b são a largura e altura da imagem. mas para minha imagem é. Minha imagem em preto e branco contém um círculo preto no centro da imagem. Eu acho isso estranho. Alguém pode me ajudar?
Obrigado.
Respostas:
1 para resposta № 1Se você olhar para o código de regionprops
(sub função ComputeEllipseParams
), você vê que eles usam o segundo momento paraestimar o raio do elipsóide. Isso funciona muito bem para recursos em forma de elipsóide, mas não muito bem para recursos com orifícios. O segundo momento aumenta se você remover pixels ao redor do centróide (que é, aliás, por que eles fazem feixes I). Assim, quanto maior for o "buraco" no meio da imagem, maior será o raio elipsóide aparente.
No seu caso, pode ser melhor usar o extrema
propriedade de regionprops, e para calcular o maior raio a partir daí.