我在网上下了一个canny算子的程序,但是不太清楚怎样用,我在一个消息处理函数中这样使用,但是运行时会出错说某某内存不能为“read”。。
CImFeaExtraDoc* pDoc1 = CImFeaExtraView::GetDoc();          //获取当前活动的位图文档
    ASSERT_VALID(pDoc1); int w=pDoc1->m_pBmpInfoHeader->biWidth;
int h=pDoc1->m_pBmpInfoHeader->biHeight;
int i,j;
BYTE*pdib1;
pdib1=(BYTE*) new char[w*h];                       //取24位彩色图像中某一个颜色分量,本来应是彩色转灰
for(i=0;i<h;i++)                                   //度图像,我这里只是为了省事,先这样试一下
for(j=0;j<w;j++)
*(pdib1+i*w+j)=*(pDoc1->pdib+i*w*3+j*3); Canny1(pdib1,CSize(pDoc1->m_pBmpInfoHeader->biWidth,pDoc1->m_pBmpInfoHeader->biHeight),0.1,0.9,0.75,pCanny);
这是canny算子函数:
void CCanny::Canny1(LPBYTE pGray, SIZE sz, double sigma, double dRatLow,
double dRatHigh, LPBYTE pResult);请教各位,我上面那样使用为什么不对,应该怎样用呢?谢谢了,来者有分