opencv实验空域滤波.docx
- 文档编号:10047417
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:20
- 大小:1.08MB
opencv实验空域滤波.docx
《opencv实验空域滤波.docx》由会员分享,可在线阅读,更多相关《opencv实验空域滤波.docx(20页珍藏版)》请在冰豆网上搜索。
opencv实验空域滤波
实验名称
实验3:
空域滤波
实验目的
1.掌握利用模板对图像进行空域滤波操作,熟练掌握常用空域模板的使用。
2.掌握图像平滑的空域方法,熟练掌握均值模板和高斯模板平滑图像
3.掌握图像锐化的空域方法,熟练掌握Laplacian、Robert、Sobel模板锐化图像
4.掌握利用高提升滤波算法对图像进行增强
实验内容
1、利用均值模板平滑灰度图像。
具体内容:
利用OpenCV对图像像素进行操作,分别利用3*3、5*5和9*9尺寸的均值模板平滑灰度图像
2、利用高斯模板平滑灰度图像。
具体内容:
利用OpenCV对图像像素进行操作,分别利用3*3、5*5和9*9尺寸的高斯模板平滑灰度图像
3、利用Laplacian、Robert、Sobel模板锐化灰度图像。
具体内容:
利用OpenCV对图像像素进行操作,分别利用Laplacian、Robert、Sobel模板锐化灰度图像
4、利用高提升滤波算法增强灰度图像。
具体内容:
利用OpenCV对图像像素进行操作,设计高提升滤波算法增强图像
5、利用均值模板平滑彩色图像。
具体内容:
利用OpenCV分别对图像像素的RGB三个通道进行操作,利用3*3、5*5和9*9尺寸的均值模板平滑彩色图像
6、利用高斯模板平滑彩色图像。
具体内容:
利用OpenCV分别对图像像素的RGB三个通道进行操作,分别利用3*3、5*5和9*9尺寸的高斯模板平滑彩色图像
7、利用Laplacian、Robert、Sobel模板锐化彩色图像。
具体内容:
利用OpenCV分别对图像像素的RGB三个通道进行操作,分别利用Laplacian、Robert、Sobel模板锐化彩色图像
实验完成情况
1、完成实验,利用均值模板实现平滑灰度图像处理。
实验代码如下:
IplImage*Average_smooth_cx(IplImage*src,intnub)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvSmooth(src,dst,CV_BLUR,nub);
returndst;
}
其中nub选择空间滤波模板的大小
利用3*3尺寸的均值模板平滑灰度图像
实验结果如图:
利用5*5尺寸的均值模板平滑灰度图像
实验结果如图:
利用9*9尺寸的均值模板平滑灰度图像
实验结果如图:
2、完成实验,利用高斯模板实现平滑灰度图像处理。
实验代码如下:
IplImage*Gaussian_smooth_cx(IplImage*src,intnub)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvSmooth(src,dst,CV_GAUSSIAN,nub);
returndst;
}
其中nub选择空间滤波模板的大小
利用3*3尺寸的高斯模板平滑灰度图像
实验结果如图:
利用5*5尺寸的高斯模板平滑灰度图像
实验结果如图:
利用9*9尺寸的高斯模板平滑灰度图像
实验结果如图:
3、完成实验,利用Laplacian、Robert、Sobel模板实现锐化灰度图像。
利用Laplacian模板锐化灰度图像
核心代码如下:
IplImage*Laplacian_cx(IplImage*src)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvLaplace(src,dst);
returndst;
}
实验结果如图:
利用Robert模板实现锐化灰度图像
核心代码如下:
IplImage*Robert_cx(IplImage*src)
{
floata[]={
-1,0,
0,1
};
CvMatkernel=cvMat(2,2,CV_32F,a);
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvFilter2D(src,dst,&kernel);
returndst;
}
实验结果如图:
利用Sobel模板实现锐化灰度图像
核心代码如下:
IplImage*Sobel_cx(IplImage*src)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvSobel(src,dst,1,0);
returndst;
}
实验结果如图:
4、完成实验,利用高提升滤波算法实现增强灰度图像。
核心代码如下:
IplImage*Highboost(IplImage*src)
{
/*平滑处理*/
IplImage*in=src;
IplImage*out=cvCreateImage(cvGetSize(in),IPL_DEPTH_8U,in->nChannels);
cvSmooth(in,out,CV_GAUSSIAN,3);
/*与原图相差并叠加*/
floatc=2;
for(inti=0;i
for(intj=0;j
CvScalar_f_x_y=cvGet2D(out,i,j);
CvScalarf_x_y=cvGet2D(in,i,j);
intd=f_x_y.val[0]+c*(f_x_y.val[0]-_f_x_y.val[0]);
if(d>255){
d=255;
}elseif(d<0){
d=0;
}
CvScalarg_x_y;
g_x_y.val[0]=d;
cvSet2D(out,i,j,g_x_y);
}
}
returnout;
}
实验结果如图:
5、完成实验,利用均值模板实现平滑彩色图像处理。
实验代码如下:
IplImage*Average_smooth_cx(IplImage*src,intnub)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvSmooth(src,dst,CV_BLUR,nub);
returndst;
}
其中nub选择空间滤波模板的大小
利用3*3尺寸的均值模板平滑彩色图像
实验结果如图:
利用5*5尺寸的均值模板平滑彩色图像
实验结果如图:
利用9*9尺寸的均值模板平滑彩色图像
实验结果如图:
6、完成实验,利用高斯模板实现平滑彩色图像处理。
实验代码如下:
IplImage*Gaussian_smooth_cx(IplImage*src,intnub)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvSmooth(src,dst,CV_GAUSSIAN,nub);
returndst;
}
其中nub选择空间滤波模板的大小
利用3*3尺寸的均值模板平滑彩色图像
实验结果如图:
利用5*5尺寸的均值模板平滑彩色图像
实验结果如图:
利用9*9尺寸的均值模板平滑彩色图像
实验结果如图:
7、完成实验,利用Laplacian、Robert、Sobel模板实现锐化彩色图像。
利用Laplacian模板实现锐化彩色图像
核心代码如下:
IplImage*Laplacian_cx(IplImage*src)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvLaplace(src,dst);
returndst;
}
实验结果如图:
利用Robert模板实现锐化彩色图像
核心代码如下:
IplImage*Robert_cx(IplImage*src)
{
floata[]={
-1,0,
0,1
};
CvMatkernel=cvMat(2,2,CV_32F,a);
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvFilter2D(src,dst,&kernel);
returndst;
}
实验结果如图:
利用Sobel模板实现锐化彩色图像
核心代码如下:
IplImage*Sobel_cx(IplImage*src)
{
IplImage*dst=cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,src->nChannels);
cvSobel(src,dst,1,0);
returndst;
}
实验结果如图:
实验中的问题
问题:
Robert模板的实现,找不到现有的实现函数。
解决:
查阅相关资料
实验结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- opencv 实验 空域 滤波