图像的转置之c++实现(qt + 不调包)

1.基本原理

 

   图像的转置就是将图像的横坐标和纵坐标交换位置,和矩阵的转置是一样的,公式见下:

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

你可能感兴趣的:(基于qt图像算法处理,c++,qt,开发语言)