문제

매트릭스 곱셈을 사용하여 정사각형의 중심을 기반으로 이미지 (간단한 사각형)를 회전시키는 프로그램을 작성해야합니다. 이에 대한 도움은 크게 감사하겠습니다. 나는 미적분학을 한눈에 볼 수 없었기 때문에 내가하고있는 일에 대한 단서가 거의 없습니다.

도움이 되었습니까?

해결책

보세요 http://www.aforgenet.com/framework/. 이것은 프로젝트에서 사용하는 C#의 완전한 이미지 처리 프레임 워크입니다. 방금 그들의 도움을 확인했고 그들은 당신이 원하는 것을하는 기능을 가지고 있습니다.

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

LGPL 라이브러리이므로 라이센스가 문제가되는 경우 바이너리와 연결하면 아무런 문제가 없습니다. 그것들은 또한 다른 도서관입니다.

직접 작성하기로 결정한 경우 C#을 수행하는 것이 크지 않기 때문에 속도에주의하십시오. 그러나 그 주변에서 일하는 방법이 있습니다.

다른 팁

다음은 원하는 것을 논의하는 좋은 코드 프로젝트 기사입니다.

http://www.codeproject.com/kb/gdi-plus/matrix_transformation.aspx

평면에서 디지털 이미지를 회전시키는 것은 많은 2x2 매트릭스 곱셈으로 요약됩니다. 여기에는 미적분학이 없습니다! 정사각형 이미지를 회전시키기 위해 전체 이미지 처리 프레임 워크가 필요하지 않습니다. 이미지 품질과 속도 측면에서 성능이 좋지 않은 한.

가서 위키 백과의 상반기를 읽으십시오 기사 회전 매트릭스에서 좋은 출발을하게됩니다.

간단히 말해서, 원점을 설정 한 다음 (회전하고 싶은 곳이면 이미지의 중심 일 것입니다), 픽셀 공간에서 회전하려는 픽셀의 좌표를 계산하고 회전 매트릭스를 곱하십시오 (기사 참조. .). 곱하기를 한 후에는 픽셀 공간에 픽셀의 새로운 좌표가 있습니다. 다른 이미지 버퍼에 해당 픽셀을 기록하면 꺼져서 회전 할 것입니다. 반복하다. 회전 각도를 알면 회전 행렬을 한 번만 계산하면됩니다!

재미있어

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top