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++实践(左飞等著),写代码与写博客的时间相差两年,至于还参考其他的资料不,我已经忘记了,如若需要,我可以补上去