1.基本原理
图像的转置就是将图像的横坐标和纵坐标交换位置,和矩阵的转置是一样的,公式见下:
2.代码实现(代码是我以前自学图像处理时写的,代码很粗糙没做任何优化,但很好理解)
/*图像的转置函数*/
QImage* MainWindow::Transpose(QImage* image)
{
QImage* newImage = new QImage(image->width(), image->height(),QImage::Format_ARGB32);
unsigned char* copyPixel = NULL;
unsigned char* objPixel = NULL;
unsigned int tempJ = 0;
for( int j = 0; j < image->height(); j++)
{
tempJ = j * image->width() * 4;
for( int i = 0; i < image->width(); i++)
{
copyPixel = image->bits() + tempJ + i * 4;
objPixel = newImage->bits() + i * image->height() * 4 + j * 4;
memcpy(objPixel, copyPixel, 4);
}
}
return newImage;
}
3.参考资料:
数字图像处理——技术详解与Visual C++实践(左飞等著),写代码与写博客的时间相差两年,至于还参考其他的资料不,我已经忘记了,如若需要,我可以补上去