用vc6.0做FFT图像处理,得到的频谱是彩色的,而且频谱大小不能完全将原来的图像覆盖,为什么???急急急

图片说明图片说明

这两个是不同图像的FFT频谱

void CTestView::OnTest()//key想办法把东西加进去
{
// TODO: Add your command handler code here
//int i,j;
// TODO: Add your command handler code here
Robert边缘检测运算

CTestDoc* pDoc = GetDocument();

LPSTR lpDIB;
LPSTR lpDIBBits;//指示原DIB图像指针

lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) pDoc->GetHDIB());
lpDIBBits = ::FindDIBBits(lpDIB);
if (::DIBNumColors(lpDIB) != 256)
{
MessageBox("目前只支持256色位图的运算!", "系统提示" , MB_ICONINFORMATION | MB_OK);
::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
return;
}

BeginWaitCursor();

// lpDIBBits = ::FindDIBBits(lpDIB);//指向DIB图像开始处象素指针 , 下面开始瞎编乱造每个都要改动

if(TRUEFFT2D(lpDIBBits, ::DIBWidth(lpDIB),::DIBHeight(lpDIB)))
{
MessageBox("傅里叶变换成功!","系统提示",MB_ICONINFORMATION|MB_OK);
pDoc->SetModifiedFlag(TRUE);
pDoc->UpdateAllViews(NULL);
}
else
{//提示用户
MessageBox("傅里叶变换失败!","系统提示",MB_ICONINFORMATION|MB_OK);
}

::GlobalUnlock((HGLOBAL) pDoc->GetHDIB());
EndWaitCursor();

   }


1个回答

你改一下图片的大小试试

weixin_42102326
weixin_42102326 好,谢谢
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐