正在加载图片...
∥在两端点之间画一条红线用来标识 Line To(hDc, MaxdLine. topx, MaxdLine. topy) DeleteObject(rhp) Released(hwnd, hDc) ∥释放内存及资源 Global Unlock(hmg Data GlobalUnl suLpha) Global Free(hDist Alpha); GlobalUnlock(hMyLine) Global Free(hMy Line) return TRUe 如果6是给定的,用上述方法,我们可以找到该方向上最长的直线 其实 Hough变换能够查找任意的曲线,只要你给定它的方程。这里,我们就不详述了。 73轮廓提取 轮廓提取的实例如图79、图7.10所示 图79原图 图7.10轮廓提取 轮廓提取的算法非常简单,就是掏空内部点:如果原图中有一点为黑,且它的8个相邻点都 是黑色时(此时该点是内部点),则将该点删除。要注意的是,我们处理的虽然是二值图,但 实际上是256级灰度图,不过只用到了0和255两种颜色。源程序如下 BOOL Outline(HWND hWnd) DWORD OffBits BufSize LPBITMAPINFOHEADER lplmg Data LPSTR IpPr HLOCAL hTemplmg Data LPBITMAPINFOHEADER IpTemplmg Data LPSTR Ip TempPtr//在两端点之间画一条红线用来标识 LineTo(hDc,MaxdLine.topx,MaxdLine.topy); DeleteObject(rhp); ReleaseDC(hWnd,hDc); //释放内存及资源 GlobalUnlock(hImgData); GlobalUnlock(hDistAlpha); GlobalFree(hDistAlpha); GlobalUnlock(hMyLine); GlobalFree(hMyLine); return TRUE; } 如果 是给定的,用上述方法,我们可以找到该方向上最长的直线。 其实 Hough 变换能够查找任意的曲线,只要你给定它的方程。这里,我们就不详述了。 7.3 轮廓提取 轮廓提取的实例如图 7.9、图 7.10 所示。 图 7.9 原图 图 7.10 轮廓提取 轮廓提取的算法非常简单,就是掏空内部点:如果原图中有一点为黑,且它的 8 个相邻点都 是黑色时(此时该点是内部点),则将该点删除。要注意的是,我们处理的虽然是二值图,但 实际上是 256 级灰度图,不过只用到了 0 和 255 两种颜色。源程序如下: BOOL Outline(HWND hWnd) { DWORD OffBits,BufSize; LPBITMAPINFOHEADER lpImgData; LPSTR lpPtr; HLOCAL hTempImgData; LPBITMAPINFOHEADER lpTempImgData; LPSTR lpTempPtr;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有