没有找到重载的成员函数该怎么修改啊?

zhengdian10 2014-05-03 11:05:17
各位帮忙改改吧!
错误提示:

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_)
...全文
1061 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengdian10 2014-05-09
  • 打赏
  • 举报
回复
谢谢各位了!
Jarrylogin 2014-05-06
  • 打赏
  • 举报
回复
可能你 少抄了void CImageProcessingView::imageLinearTransform(BYTE,BYTE)的实现代码,你再在项目中找找看,如果没有的话就要自己实现它了
schlafenhamster 2014-05-06
  • 打赏
  • 举报
回复
。h 里加一个: void CImageProcessingView::imageLinearTransform(BYTE,BYTE); 。cpp里 void CImageProcessingView::imageLinearTransform(BYTE,BYTE) { 写代码。。。 }
zhengdian10 2014-05-06
  • 打赏
  • 举报
回复
那该怎么改呢?
schlafenhamster 2014-05-03
  • 打赏
  • 举报
回复
“void CImageProcessingView::imageLinearTransform(BYTE,BYTE)”: .h里只有:private: void imageMiddleSmooth(CDib *p_Dib); void imageLinearTransform(CDib *p_Dib);

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧