Agora, estou lidando com algum processamento de imagem em Python via PIL (Python Image Library). Meu principal objetivo é contar o número de células coloridas em uma imagem imuno-histoquímica. Sei que existem programas, bibliotecas, funções e tutoriais relevantes sobre o assunto, e verifiquei quase todos eles. Meu principal objetivo é escrever o código manualmente do zero, o máximo possível. Por isso, estou tentando evitar o uso de muitas bibliotecas e funções externas. Eu escrevi a maior parte do programa. Então, aqui está o que está acontecendo passo a passo:
O programa recebe o arquivo de imagem:
E processa para os glóbulos vermelhos (basicamente, desativa os valores RGB abaixo de um certo limite para o vermelho):
E cria o mapa booleano dele ((vai colar uma parte dele porque é grande), que basicamente coloca 1 onde quer que encontre um pixel vermelho na segunda imagem processada acima.
22222222222222222222222222222222222222222
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000011111100000000000000000001100002
20000000001111100000000000000000011111002
20000000000110000000000000000000011111002
20000000000000000000000000000000111111002
20000000000000000000000000000000111111102
20000000000000000000000000000001111111102
20000000000000000000000000000001111111102
20000000000000000000000000000000111111002
20000000000000000000000000000000010000002
20000000000000000000000000000000000000002
22222222222222222222222222222222222222222
Eu intencionalmente gerei esse quadro como algo nas bordas com 2s para me ajudar a contar o número de grupos de 1s naquele mapa booleano.
Minha pergunta para vocês é: como é que eu posso contar com eficiência o número de células (grupos de 1s) nesse tipo de mapa booleano? Eu descobri http://en.wikipedia.org/wiki/Connected-component_labeling que parecem extremamente relacionados e semelhantes, mas, tanto quanto vejo, é no nível de pixel. O meu está no nível booleano. Apenas 1s e 0s.
Muito obrigado.