MATLAB Подсчет нескольких сфер с перекрытиями, известным количеством пикселей на сферу, 3D-данные недоступны - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь подсчитать количество сфер на основе значения интенсивности. Сферы являются биомаркерами из компьютерной томографии. Поэтому центр имеет наибольшую интенсивность. Однако мне сложно сосчитать сферы, если есть совпадения. Как мы можем выяснить, как сделать подсчет сфер с перекрытием, если у меня нет доступа к 3D-данным, а только к 2D-изображению. Моим первым шагом было пороговое изображение, чтобы я мог исключить несферические области и сделать их 0, в то время как сферы равны 1 с, поскольку средняя интенсивность сфер> 6000, а остальные только пара сотен или даже меньше.

thresh = 100;
imbin(imbin<thresh) = 0;
imbin(imbin>=thresh) = 1;
figure(2)
imshow(imbin,[0 1])

Тогда следующим шагом будет каким-то образом подсчитать пиксели вокруг точки, чтобы это была сфера, а не точка высокой интенсивности. С тех пор матрица содержит только 1 и 0. Я думаю, что я могу сделать что-то вроде ниже: предполагая, что сфера содержит не менее 8 пикселей

if the sum of pixels of the connecting 8 pixels > 8, then I count the entire region as 1 sphere. If below 8, count as a noise and make them all 0s.

, этот метод работает до тех пор, пока нет перекрытия или нет двух сферы, которые слишком близко друг к другу. Но как я могу посчитать, если они действительно близки и даже перекрывают друг друга. как показано на рисунке 1. Изображение после порога видно на рисунке 2

There are 3 clear spheres seen and in the middle, there is a cluster of spheres

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...