Pergunta

Eu preciso escrever um programa que usa matriz de multiplicação para girar uma imagem (um simples quadrado), com base no centro da praça, uma certa quantidade de grau com base no que eu preciso. Qualquer ajuda neste assunto seria altamente apreciada. Eu quase não tenho nenhuma pista sobre o que eu estou fazendo porque eu não ter tomado tanto como um olhar sobre Cálculo.

Foi útil?

Solução

Dê uma olhada http://www.aforgenet.com/framework/ . Esta é uma estrutura de processamento de imagem completa em C # que eu estou usando em um projeto. Acabei de verificar a sua ajuda e eles têm uma função que faz o que quiser -

// create filter - rotate for 30 degrees keeping original image size
RotateBicubic filter = new RotateBicubic( 30, true );
// apply the filter
Bitmap newImage = filter.Apply( image );

É uma biblioteca LGPL, por isso, se o licenciamento é um problema, se você ligar com seus binários, você não terá problemas. Sua também outras bibliotecas lá fora.

Se você decidir fazer para escrevê-lo, tenha cuidado sobre a velocidade como C # fazendo trituração de número não é grande. Mas há maneiras de contornar isso.

Outras dicas

Aqui está um artigo do projeto de código bom discutir apenas o que você está querendo:

http://www.codeproject.com/KB/GDI-plus /matrix_transformation.aspx

Rotação de uma imagem digital no avião se resume a uma grande quantidade de produto de matrizes 2X2. Não há nenhum cálculo envolvido aqui! Você não precisa de uma estrutura de processamento de imagem inteira para girar uma imagem quadrada - a menos que este é realmente o desempenho sensíveis em termos de qualidade de imagem e velocidade.

Go e ler a primeira metade do da Wikipedia artigo sobre a matriz de rotação e que deve começar -lo para um bom começo.

Em suma, estabelecer a sua origem (talvez o centro da imagem, se é isso que você quer para cerca de rotação), em seguida, calcular no espaço de pixel a coordenada de um pixel que você gostaria de rotação, e multiplicar por sua matriz de rotação (ver artigo.). Assim que tiver feito a multiplicar, você terá suas novas coordenadas do pixel de espaço pixel. Escrever para fora daquele pixel em outro buffer de imagem e você estará fora e girando. Repetir. Note-se que uma vez que você sabe que seu ângulo de rotação, você só precisa calcular a sua matriz de rotação uma vez!

Divirta-se,

Paul

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top