回复: QT 数字图像处理
#6 [dongliang 06-25 21:10]
读入图像是调用qt中的类,但是关键是数据的处理部分,完全是自己写得代码,.其实调用qt的类也可以实现,但是那样的话,即使做出来了,很多东西还不清楚.
#7 [dongliang 06-25 21:18]
用QImage 读入后,有一个类成员函数返回的是图像数据的首地址,这时我用一个memcpy拷贝数据到零时变量tmpbuffer中,对图像的数据进行操作,操作完了,然后反向拷贝.这样重新显示QImage对象的数据,就是处理后的图像.这就是整体的思路.
#8 [nankezi88 07-05 15:07]
我想在你这个代码的基础上实现福利叶变换,用的是C++中的一段代码,但是不成功啊,很郁闷,你能看看怎么改吗
void ImageProcess::fft(QImage Image)
{
// 中间变量
doubledTemp;
// 循环变量
inti;
intj;
// 进行付立叶变换的宽度和高度(2的整数次方)
intw;
inth;
intwp;
inthp;
//int byteWidth;
//BYTE *pImageDataTemp=(BYTE *)malloc(sizeof(BYTE)*biDataSize);
w = 1;
h= 1;
wp = 0;
hp = 0;
//std::complex *TD =(std::complex*)malloc(sizeof(std::complex)*biDataSize);
//std::complex *FD =(std::complex*)malloc(sizeof(std::complex)*biDataSize);
/*byteWidth = biWidth*3;
if (byteWidth%4)
byteWidth += 4-(byteWidth%4);*/
while(w * 2 & ..
#9 [dongliang 07-06 10:59]
楼上的问题:
我将所有的bmp格式8,24,32位深度,全部都转化为24.所以你上面的仅仅是考虑了8位和32位.没有考虑24.位深度不同,数据的格式也不同.你可以在MainWindow.cpp文件中找到openfile函数中loadImage = loadImage.convertToFormat(QImage::Format_RGB888);更改Format_RGB888.
由于我对傅立叶变换原理也不了解,上课打酱油去了.现在参加了培训,没有时间再去弄了.请见谅!
#10 [borlittle 07-10 22:18]
不错啊,下来学习一下