早教吧作业答案频道 -->其他-->
如何进行数字图像处理中的膨胀和腐蚀计算
题目详情
如何进行数字图像处理中的膨胀和腐蚀计算
▼优质解答
答案和解析
腐蚀的算法:
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为1,结果图像的该像素为1.否则为0.
结果:使二值图像减小一圈
定义:E = B S = { x,y | SxyB}
膨胀的算法:
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为0,结果图像的该像素为0.否则为1
结果:使二值图像扩大一圈
定义:E = B S = { x,y | Sxy∩B ≠Ф}
膨胀源码
BOOL Dilation(HWND hWnd,BOOL Hori)
{
DWORD OffBits,BufSize;
LPBITMAPINFOHEADER lpImgData;
LPSTR lpPtr;
HLOCAL hTempImgData;
LPBITMAPINFOHEADER lpTempImgData;
LPSTR lpTempPtr;
HDC hDc;
HFILE hf;
LONG x,y;
unsigned char num;
int i;
//为了处理的方便,仍采用256级灰度图,不过只调色板中0和255两项
if( NumColors!=256){
MessageBox(hWnd,"Must be a mono bitmap with grayscale palette!",
"Error Message",MB_OK|MB_ICONEXCLAMATION);
return FALSE;
}
OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER);
//BufSize为缓冲区大小
BufSize=OffBits+bi.biHeight*LineBytes;
//为新的缓冲区分配内存
if((hTempImgData=LocalAlloc(LHND,BufSize))==NULL)
{
MessageBox(hWnd,"Error alloc memory!","Error Message",
MB_OK|MB_ICONEXCLAMATION);
return FALSE;
}
lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData);
lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData);
//拷贝头信息和位图数据
memcpy(lpTempImgData,lpImgData,BufSize);
if(Hori)
{
//在水平方向进行膨胀运算
for(y=0;y
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为1,结果图像的该像素为1.否则为0.
结果:使二值图像减小一圈
定义:E = B S = { x,y | SxyB}
膨胀的算法:
用3x3的结构元素,扫描图像的每一个像素
用结构元素与其覆盖的二值图像做“与”操作
如果都为0,结果图像的该像素为0.否则为1
结果:使二值图像扩大一圈
定义:E = B S = { x,y | Sxy∩B ≠Ф}
膨胀源码
BOOL Dilation(HWND hWnd,BOOL Hori)
{
DWORD OffBits,BufSize;
LPBITMAPINFOHEADER lpImgData;
LPSTR lpPtr;
HLOCAL hTempImgData;
LPBITMAPINFOHEADER lpTempImgData;
LPSTR lpTempPtr;
HDC hDc;
HFILE hf;
LONG x,y;
unsigned char num;
int i;
//为了处理的方便,仍采用256级灰度图,不过只调色板中0和255两项
if( NumColors!=256){
MessageBox(hWnd,"Must be a mono bitmap with grayscale palette!",
"Error Message",MB_OK|MB_ICONEXCLAMATION);
return FALSE;
}
OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER);
//BufSize为缓冲区大小
BufSize=OffBits+bi.biHeight*LineBytes;
//为新的缓冲区分配内存
if((hTempImgData=LocalAlloc(LHND,BufSize))==NULL)
{
MessageBox(hWnd,"Error alloc memory!","Error Message",
MB_OK|MB_ICONEXCLAMATION);
return FALSE;
}
lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData);
lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData);
//拷贝头信息和位图数据
memcpy(lpTempImgData,lpImgData,BufSize);
if(Hori)
{
//在水平方向进行膨胀运算
for(y=0;y
看了 如何进行数字图像处理中的膨胀...的网友还看了以下:
成语天地。1.东奔西走南腔北调从这些画线的字中,我发现了其中的规律,我也能写出这样的成语:、、 2020-04-13 …
请问在楷体书法中,同一个偏旁部首在不同的字中,是否会有写法或结构上的差异?例如“找”和“抠”这两个 2020-05-13 …
上下窄,中间宽的字中间常常有长横、宝盖头、土字等部件的字 2020-05-16 …
左右结构的字中,右边是百字的有哪些如题还要组词 2020-05-17 …
的字中间少了一点的哪个字怎么读? 2020-05-17 …
在古代的字中宇和宙各代表什么意思? 2020-06-04 …
当物体在足够深的水中处于自由状态时,下列说法中错误的是(A)A.密度大于水的物体在水中一定下沉到水 2020-06-07 …
当物体在足够深的水中处于自由状态时,下列说法中错误的是()A.密度大于水的物体在水中一定下沉到水底 2020-06-07 …
为何古人的字中大多数都有一个子,比如苏轼,字子瞻,其中的“子”有何含义? 2020-06-09 …
()()之别填相反的字()()相处弃()图()以()胜() 2020-06-17 …
相关搜索:如何进行数字图像处理中的膨胀和腐蚀计算