没有找到重载的成员函数该怎么修改啊?
各位帮忙改改吧!
错误提示:
error C2511: “void CImageProcessingView::imageLinearTransform(BYTE,BYTE)”: “CImageProcessingView”中没有找到重载的成员函数
这是源文件:
void CImageProcessingView::imageLinearTransform(BYTE gMin,BYTE gMax)
{
// TODO: 在此添加命令处理程序代码
LPBYTE lpSrc; //指向源图像的指针
LPBYTE lpDst; // 指向缓存图像的指针
LPBYTE lpNewDIBBits; // 指向缓存DIB图像的指针
HLOCAL hNewDIBBits;
long i,j; //循环变量
//int flag=1; //循环标志变量
//BYTE pixel[256] = {0},mid = 0; //窗口像素值及中值
BYTE pixel;
//BYTE temp;//中间变量
LPBYTE lpDIBBits=p_Dib->m_lpImage;//找到原图像的起始位置
LONG lWidth=p_Dib->m_lpBMIH->biWidth; //获得原图像的宽度
LONG lHeight=p_Dib->m_lpBMIH->biHeight; //获得原图像的高度
// 暂时分配内存,以保存新图像
hNewDIBBits = LocalAlloc(LHND, lWidth * lHeight);
if (hNewDIBBits == NULL)
{
return FALSE;
}
lpNewDIBBits = (LPBYTE )LocalLock(hNewDIBBits);
// 初始化新分配的内存,设定初始值为0
lpDst = (LPBYTE)lpNewDIBBits;
memset(lpDst, (BYTE)0, lWidth * lHeight);
//逐个扫描图像的中的像素点,进行灰度线性变换
for(j=0;j<lHeight;j++)
{
for(i=0;i<lWidth;i++)
{
//把3*3屏蔽窗口的所有像素值放入pixel[m]
lpSrc=(LPBYTE)lpDIBBits+lWidth*j+i;
lpDst=(LPBYTE)lpDIBBits+lWidth*j+i;
pixel=(BYTE)*lpSrc;
*lpDet=(BYTE)(((float)(gMax-gMin)/255)*pixel+gMin+0.5);
}
}
memcpy(lpDIBBits, lpNewDIBBits, lWidth * lHeight);
//释放内存
LocalUnlock(hNewDIBBits);
LocalFree(hNewDIBBits);
return TRUE;
}
头文件:
// ImageProcessingView.h : interface of the CImageProcessingView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_IMAGEPROCESSINGVIEW_H__613B030F_9C37_11D6_A6C4_00D0094CCE8A__INCLUDED_)
#define AFX_IMAGEPROCESSINGVIEW_H__613B030F_9C37_11D6_A6C4_00D0094CCE8A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CImageProcessingView : public CScrollView
{
protected: // create from serialization only
CImageProcessingView();
DECLARE_DYNCREATE(CImageProcessingView)
// Attributes
public:
BOOL DIBDWTStep(CDib* pDib, int nInv);
CImageProcessingDoc* GetDocument();
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CImageProcessingView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void OnInitialUpdate(); // called first time after construct
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL
private:
void imageMiddleSmooth(CDib *p_Dib);
void imageLinearTransform(CDib *p_Dib);
// Implementation
public:
double* m_pDbImage;
int m_nSupp;
int m_nDWTCurDepth;
virtual ~CImageProcessingView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CImageProcessingView)
afx_msg void OnDegenerationInverse();
afx_msg void OnRestoreInverse();
afx_msg void OnMiddleSmooth();
afx_msg void OnRestoreWinner();
afx_msg void OnRestoreGeo();
afx_msg void OnLinearTransform();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
public:
//afx_msg void OnRestoreWinner();
//afx_msg void OnRestoreGeo();
// afx_msg void OnLinearTransform();
};
#ifndef _DEBUG // debug version in ImageProcessingView.cpp
inline CImageProcessingDoc* CImageProcessingView::GetDocument()
{ return (CImageProcessingDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_IMAGEPROCESSINGVIEW_H__613B030F_9C37_11D6_A6C4_00D0094CCE8A__INCLUDED_)