本文目录一览:
- 1、如何进行数字图像处理中的膨胀和腐蚀计算
- 2、哪有数字图像处理(冈萨雷斯MATLAB版)中文ppt
- 3、新媒体技术专业怎么样
- 4、大学老师关于数字图像处理方面的试讲
- 5、自己做一个数字图像处理的ppt,3张,【matlab】,怎么破?
如何进行数字图像处理中的膨胀和腐蚀计算
腐蚀的算法:
用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;ybi.biHeight;y++){
//lpPtr指向原图数据,lpTempPtr指向新图数据
lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes)+1;
lpTempPtr=(char*)lpTempImgData+
(BufSize-LineBytes-y*LineBytes)+1;
for(x=1;xbi.biWidth-1;x++){
//注意为防止越界,x的范围从1到宽度-2
num=(unsigned char)*lpPtr;
//原图中是黑点的,新图中肯定也是,所以要考虑的是那些原图
//中的白点,看是否有可能膨胀成黑点
if (num==255){
*lpTempPtr=(unsigned char)255; //先置成白点
for(i=0;i3;i++){
num=(unsigned char)*(lpPtr+i-1);
//只要左右邻居中有一个是黑点,就膨胀成黑点
if(num==0){
*lpTempPtr=(unsigned char)0;
break;
}
}
}
//原图中就是黑点的,新图中仍是黑点
else *lpTempPtr=(unsigned char)0;
//指向下一个象素
lpPtr++;
lpTempPtr++;
}
}
}
else{
//在垂直方向进行腐蚀运算
for(y=1;ybi.biHeight-1;y++){ //注意为防止越界,y的范围从1到高度-2
lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes);
lpTempPtr=(char *)lpTempImgData+(BufSize-LineBytes-y*LineBytes);
for(x=0;xbi.biWidth;x++){
num=(unsigned char)*lpPtr;
if (num==255){
*lpTempPtr=(unsigned char)255;
for(i=0;i3;i++){
num=(unsigned char)*(lpPtr+(i-1)*LineBytes);
//只要上下邻居中有一个是黑点,就膨胀成黑点
if(num==0){
*lpTempPtr=(unsigned char)0;
break;
}
}
}
else *lpTempPtr=(unsigned char)0;
lpPtr++;
lpTempPtr++;
}
}
}
if(hBitmap!=NULL)
DeleteObject(hBitmap);
hDc=GetDC(hWnd);
//产生新的位图
hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEADER)lpTempImgData,
(LONG)CBM_INIT,
(LPSTR)lpTempImgData+
sizeof(BITMAPINFOHEADER)+
NumColors*sizeof(RGBQUAD),
(LPBITMAPINFO)lpTempImgData,
DIB_RGB_COLORS);
//起不同的结果文件名
if(Hori)
hf=_lcreat("c://hdilation.bmp",0);
else
hf=_lcreat("c://vdilation.bmp",0);
_lwrite(hf,(LPSTR)bf,sizeof(BITMAPFILEHEADER));
_lwrite(hf,(LPSTR)lpTempImgData,BufSize);
_lclose(hf);
//释放内存及资源
ReleaseDC(hWnd,hDc);
LocalUnlock(hTempImgData);
LocalFree(hTempImgData);
GlobalUnlock(hImgData);
return TRUE;
}
腐蚀源码
BOOL Erosion(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;ybi.biHeight;y++){
//lpPtr指向原图数据,lpTempPtr指向新图数据
lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes)+1;
lpTempPtr=(char*)lpTempImgData+
(BufSize-LineBytes-y*LineBytes)+1;
for(x=1;xbi.biWidth-1;x++){
//注意为防止越界,x的范围从1到宽度-2
num=(unsigned char)*lpPtr;
if (num==0){ //因为腐蚀掉的是黑点,所以只对黑点处理
*lpTempPtr=(unsigned char)0; //先置成黑点
for(i=0;i3;i++){
num=(unsigned char)*(lpPtr+i-1);
if(num==255){
//自身及上下邻居中若有一个不是黑点,则将该点腐
//蚀成白点
*lpTempPtr=(unsigned char)255;
break;
}
}
}
//原图中就是白点的,新图中仍是白点
else *lpTempPtr=(unsigned char)255;
//指向下一个象素
lpPtr++;
lpTempPtr++;
}
}
}
else{
//在垂直方向进行腐蚀运算
for(y=1;ybi.biHeight-1;y++){ //注意为防止越界,y的范围从1到高度-2
//lpPtr指向原图数据,lpTempPtr指向新图数据
lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes);
lpTempPtr=(char *)lpTempImgData+(BufSize-LineBytes-y*LineBytes);
for(x=0;xbi.biWidth;x++){
num=(unsigned char)*lpPtr;
if (num==0){ //因为腐蚀掉的是黑点,所以只对黑点处理
*lpTempPtr=(unsigned char)0; //先置成黑点
for(i=0;i3;i++){
num=(unsigned char)*(lpPtr+(i-1)*LineBytes);
if(num==255){
//自身及上下邻居中若有一个不是黑点,则将该点腐
//蚀成白点
*lpTempPtr=(unsigned char)255;
break;
}
}
}
//原图中就是白点的,新图中仍是白点
else *lpTempPtr=(unsigned char)255;
//指向下一个象素
lpPtr++;
lpTempPtr++;
}
}
}
if(hBitmap!=NULL)
DeleteObject(hBitmap);
hDc=GetDC(hWnd);
//产生新的位图
hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEADER)lpTempImgData,
(LONG)CBM_INIT,
(LPSTR)lpTempImgData+
sizeof(BITMAPINFOHEADER)+
NumColors*sizeof(RGBQUAD),
(LPBITMAPINFO)lpTempImgData, DIB_RGB_COLORS);
//起不同的结果文件名
if(Hori)
hf=_lcreat("c://herosion.bmp",0);
else
hf=_lcreat("c://verosion.bmp",0);
_lwrite(hf,(LPSTR)bf,sizeof(BITMAPFILEHEADER));
_lwrite(hf,(LPSTR)lpTempImgData,BufSize);
_lclose(hf);
//释放内存及资源
ReleaseDC(hWnd,hDc);
LocalUnlock(hTempImgData);
LocalFree(hTempImgData);
GlobalUnlock(hImgData);
return TRUE;
}
哪有数字图像处理(冈萨雷斯MATLAB版)中文ppt
给你两本,一本是matlab版,另一本是中文版,都是冈萨雷斯的,这个学期已经学完了啊。
新媒体技术专业怎么样
新媒体可以做以下工作
第一:初级新媒体运营专员
我们熟知的新媒体运营,一般分为初级,中级和高阶。初级新媒体运营有很多,一般都是公司的新媒体运营专员。初级的新媒体运营分为两个方向,一个方向是偏内容编辑,也就是文案小编。另外一个方向偏向于营销,也就是运营或者策划。
一般的新媒体运营专员,基础都要有一定的原创能力,也就是文字撰写的能力。负责公司单个或多个媒体平台的日常发布和运营,对工作经验要求并不多,但也要有一定的作品和案例。在郑州这样的二线城市,薪资一般是4k~6k不等。
我自己当时刚毕业出来工作就是做的新媒体运营专员,负责的是客户的运营策划方案,对PPT的撰写能力要求比较高。但新媒体运营专员的工作任务来说,工作还是比较轻松简单的。
第二:中级新媒体运营
专业的新媒体运营,一般都是有一定的工作经验,对一些常用的平台,有一定的认知和理解。例如:我自己除了微信,微博日常的更新运营工作,其次我对今日头条和百度,抖音的运营规则有一定深刻的理解,同时在这些平台上,操作过一定的成功案例。
专业的新媒体运营,无论在文案的撰写能力,还是在媒体平台的运营规则,都要比新媒体运营专员,要提升一个等级。
例如:在郑州专业的新媒体运营,一般薪酬是5k到8k不等,一般都需要1~2年的工作经验。专业的新媒体运营在小公司里都是负责一个项目组,但在大公司可能还是在比较基础的岗位工作。因为我们公司比较小,我就负责我们公司的全栈运营,就是公司全媒体平台运营策划的简称。关于公司内容产品的定位,以及对外发布的内容媒介平台选择,基本上都是由我来决定。同时也担任新媒体运营板块的讲师,教授想从事新媒体运营的同学们,带他们实训项目等等,如果你想学欢迎留言咨询。
第三:高阶新媒体运营总监
高阶新媒体运营,一般都是内容总监级别或者营销总监级别,是从内容小编和运营小白一步步成长起来的。要想达到这个级别,一般需要5~8年不等,但因个人努力程度不一,时间也不尽相同。
我身边的高阶新媒体运营总监并不多,一般他们都是项目操盘手。在大公司一般是总监级别,但在小公司一般是联合创始人,对他们的要求能力很高。首先要在这个行业领域有深刻的认知,同时能够根据公司的战略目标,做好品牌的宣传和各种公关事宜。他们要有整体的把控能力,对各个媒体平台有深入的认知,还要有丰富的操盘经验和媒体资源。
例如:在郑州高阶新媒体运营人才并不多,岗位薪酬一般都是在8K+甚至更高。
新媒体运营是做什么的?具体的工作职责是什么?每个阶段职责都不一样,如果你感兴趣想学习欢迎留言咨询。我将免费分享我的新媒体运营的培训课件,带你实操项目少走弯路,更快成为一名合格的新媒体运营人员。
初级新媒体运营专员,主要是负责公司单个平台的内容发布,策划活动等。中级新媒体运营组长,一般负责公司各个媒体平台和整体运维工作。高阶新媒体运营总监,一般是负责公司整个品宣与公告,操盘公司项目等。
大学老师关于数字图像处理方面的试讲
不用深度,只要清楚就行,把最基本的理论讲清楚就行,我们老师就是这么讲解的,最好做个ppt,如果和数学公式有关的应该笔书,不要ppt放过去,最难将的应该是傅里叶变换那,希望你不要碰到讲那个,别的都还好说,祝你成功。
自己做一个数字图像处理的ppt,3张,【matlab】,怎么破?
处理过程图上 取一个子区域讲解一下滤波过程,这样更形象些。