Como contar células sanguíneas em opencv? O problema é que eles permanecem juntos.
A imagem de exemplo:
Talvez o histograma geométrico em pares (histogramas geométricos ) seja adequado para combinar a forma do círculo parcial?
Como contar células sanguíneas em opencv? O problema é que eles permanecem juntos.
A imagem de exemplo:
Talvez o histograma geométrico em pares (histogramas geométricos ) seja adequado para combinar a forma do círculo parcial?
Respostas:
Apenas uma ideia sem garantia de sucesso:
Da mesma forma que a sugestão do @ SalemMansour, também é uma abordagem baseada em área.
Uma estimativa realmente aproximada pode ser calculada se pudermos assumir
Em seguida, você pode pré-medir o tamanho médio de uma célula e calcular uma máscara barata para células como esta:
from SimpleCV import *
im = Image("s58Hl.jpg")
r,g,b = im.splitChannels()
cellmask = g.equalize().threshold(90).invert()
masksize = cellmask.getGrayNumpy().sum()/255.
cellsize = 27*27 # premeasured cell size
cellnum = masksize/cellsize
print(cellnum)
Isso me dá ~ 211 para a contagem de células.
A imagem da máscara é assim:
Para esta imagem menor, eu contaria manualmente 9 células:
A solução fornece o resultado de 9.46502057613.
Obviamente, se alguma das suposições for inválida, essa abordagem será inútil. Também é sensível ao limite de cores fortes e ao tamanho constante da célula. Devido à equalização da cor, ela pode falhar totalmente se nenhuma célula estiver presente na imagem.
Mas é realmente simples e barato :)
Primeiro, você deve alterar a imagem para imagem binária usando o método otsu de limite. Você pode separar as células (células sobrepostas) usando morfologia matemática, como erosão e abertura. Estimar a área.