Função pintaRegião

Função pintaRegião

por Taís Pinheiro -
Número de respostas: 6

Não entendo o que fazer. Alguém pode me ajudar?

Em resposta à Taís Pinheiro

Re: Função pintaRegião

por Victor Sanches Portella -

Primeiro, a tes dessa função, você ja deve ter desenhado as linhas e separado as regiões.

Depois disso, cada região vai ter uma lista encadeada de pixels. A cabeça da lista de pixels vai estar armazenada na struct CelRegiao de cada região.

O que a função pinta região deve fazer é receber a cabeça da lista de pixels de uma determinada região, imagens R, G e B ja alocadas, e um vetor com 3 valores floats, representando (R,G,B).

Assim, você deve percorrer todos os pixels, pintando os pixels da Imagem R com a cor R do vetor, Imagem G com G, e imagem B com B.

Se ficou muito confuso, posso tentar explicar de outra maneira.

Em resposta à Victor Sanches Portella

Re: Função pintaRegião

por Taís Pinheiro -

Primeiramente obrigada...

Pelo que entendi, terei de pintar as imagens R, G e B, mas então porque a função recebe Cabeça como parâmetro? Como pintarei a região determinada com estes canais?

Valeu!

Em resposta à Taís Pinheiro

Re: Função pintaRegião

por Victor Sanches Portella -

Essa vai ser a sabeça dos pixels da região. Da uma olhada no struct CelRegião. la tem o cabpix, que deveria guardar a cabeça da lista de pixels dessa região.

Cada celula da lista de pixels tem uma posição X,Y. Então você devera rodar essa lista inteira, para pintar todos os pixels compreendidos nessa lista. Lembrando que essa lista foi feita na função juntaPixels.

As imagens R, G e B são os canais de cores, para você poder criar uma imagem colorida. Se no pixel (0,0) da imagem R eu colocar o valor 1.0,   0 na G e 0 na B, esse pixel terá a cor vermelha. Se eu colocasse 0.5 em R, ainda seria vermelho, ams um vermelho mais escuro. (mais fraco).

Não sei se deu pra entender. Qualquer coisa eu tento explicar de outra maneira.

Em resposta à Victor Sanches Portella

Re: Função pintaRegião

por Cláudio Silva -

Desculpa mas nao entendi ainda essa funcao, vou criar  trez novas matrizes identicas a matriz que usei para listar os pixels , depois em cada regiao da matriz R,G,B vou colocar um valor de pixel  ? aleatorio ? e a matriz antiga vou dar free nela ? valeu 

Em resposta à Cláudio Silva

Re: Função pintaRegião

por José Coelho de Pina -

vou criar  trez novas matrizes identicas a matriz que usei para listar os pixels

Certo. Você deve cria uma nova estrutura/registro/objeto Imagem para cada cor.
Cada uma delas deve ser inicializada com a imagem com as linhas verticais e horizontais.

depois em cada regiao da matriz R,G,B vou colocar um valor de pixel  ? aleatorio ?

Aleatória ou como você quiser.
Aqui entra a função pintaRegião onde você escolhe,para cada região, você escolhe
o vetor cor (que pode ser uma linha do vetor cores disponibilizado.

e a matriz antiga vou dar free nela ?

Como você preferir já que depois de utilizar a função pintaRegião e a salvaImagemRGB o programa
termina e a área volta para o sistema. (Tem um tópico que foi discutido isto, não me lembro qual é.)