计算机图形图像处理 实验二

本文介绍了计算机图形图像实验,包括图像平滑(均值滤波、中值滤波、高斯滤波)、图像锐化(Sobel、Robert、Prewitt、Laplacian、LOG算子)以及图像去噪(高斯噪声、椒盐噪声、均匀噪声)。通过实验对比,高斯滤波在平滑和去噪方面表现优秀,而Sobel和Prewitt算子具有一定的抗噪声能力,但可能导致虚假边缘。LOG算子能抑制噪声,但可能平滑尖锐边缘。椒盐噪声处理中,中值滤波效果较好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机图形图像实验

一. 图像平滑

图像平滑,主要要用到openCV里的函数cvSmooth,如下

/*
src 原图像
dst 目标图像
smoothtype 平滑类型
    CV_BLUR 均值滤波
    CV_MEDIAN 中值滤波
    CV_GAUSSIAN 高斯滤波
    CV_BILATERAL 双向滤波
size1 平滑操作,窗口的宽,必须是奇数
size2 平滑操作,窗口的宽,为0的话和size1大小相等,
sigma1 用于高斯滤波
sigma2 用于双向滤波
*/
cvSmooth(cvArr *src,cvArr *dst, int smoothtype, int size1,int size2, double sigma1,double sigma2)

1. 均值滤波

IplImage* blurSmooth(IplImage* src, int size) {
    IplImage* dst = cvCreateImage(cvSize(src->width, src->height), src->depth, src->nChannels);
    cvSmooth(src, dst, CV_BLUR, size, 0, 0, 0);
    return dst;
}

2. 中值滤波

/*
中值滤波
窗口的增加->图像的损坏加大
*/
IplImage* medianSmooth(IplImage* src, int size) {
    IplImage* dst = cvCreateImage(cvSize(src->width, src->height), src->depth, src->nChannels);
    cvSmooth(src, dst, CV_MEDIAN, size, 0, 0, 0);
    return dst;
}

3. 高斯滤波

/*
高斯滤波
抑制服从正态分布的噪声有效
g(x)=exp( -x^2/(2*(sigma^2))
*/
IplImage* gaussianSmooth(IplImage* src,int size) {

    IplImage* dst = cvCreateImage(cvSize(src->width, src->height), src->depth, src->nChannels);
    cvSmooth(src, dst, CV_GAUSSIAN, size, 0, 0, 0);
    return dst;
}

4. 实验结果

这里写图片描述
由以上结果可知,高斯滤波对于含有高斯噪声图像的处理结果较好,仔细看会发现要比均值滤波和中值滤波在细节上会更加清晰一点

椒盐噪声滤波

椒盐噪声图像中,带有随机分布的白点(盐),灰点(椒),中值滤波区中间值,能够有效过滤这两种灰度值的极值,因此,中值滤波对椒盐噪声的处理结果较好

均匀噪声滤波

对于均匀噪声的添加是否正确,这个我不太清楚。按照自己的做法添加均匀噪声后,图像滤波如上所示,就清晰度来说还是高斯滤波的处理效果较好(仔细看可以发现的)

二. 图像锐化

1. Sobel算子

x方向梯度算子 Gx

101202101

y方向梯度算子 Gy

121000121

0121012102101010

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值