OpenCV学习笔记——多种Smooth平滑处理

opencv库提供了好几种模糊平滑Smooth操作的类型作为cvSmooth的参数传入,从而达到不同的平滑效果,另外复习了一下如何复制一份图像和重新调整图像大小。

调整图像大小目前是按照一下步骤进行:

1、先cvcreate一个新的图像,cvcreate中的参数设为调整之后的大小(用Cvsize的构造函数封装代入)

2、然后再用cvresize把原图像输入到刚才构造的已设定好尺寸的图像中

代码:

#include<cv.h>
#include<highgui.h>
//多种smooth的样例
int main(void)
{
	IplImage *ori_src = cvLoadImage("cc.jpg");
	IplImage *src = cvCreateImage(CvSize(ori_src->width>>1,ori_src->height>>1), ori_src->depth, ori_src->nChannels);

	cvResize(ori_src, src, CV_INTER_LINEAR);

	IplImage *dst_blur = cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
	IplImage *dst_blur_no_scale= cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
	IplImage *dst_gaussian = cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
	IplImage *dst_medeian= cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
	IplImage *dst_bilateral = cvCreateImage(cvGetSize(src), src->depth, src->nChannels);
	
	cvNamedWindow("Orignal",CV_WINDOW_AUTOSIZE);
	cvNamedWindow("Cvsmooth_blur");
	cvNamedWindow("Cvsmooth_blur_no_scale");
	cvNamedWindow("Cvsmooth_gaussian");
	cvNamedWindow("Cvsmooth_medeian");
	cvNamedWindow("Cvsmooth_bilateral");

	cvSmooth(src, dst_blur, CV_BLUR, 3, 3, 0, 0);
	cvSmooth(src, dst_blur_no_scale, CV_BLUR_NO_SCALE, 3, 3, 0, 0);
	cvSmooth(src, dst_gaussian, CV_GAUSSIAN, 3, 3, 0, 0);
	cvSmooth(src, dst_medeian, CV_MEDIAN, 3, 3, 0, 0);
	cvSmooth(src, dst_bilateral, CV_BILATERAL, 3, 3, 0, 0);
		
	cvShowImage("Orignal", src);
	cvShowImage("Cvsmooth_blur", dst_blur);
	cvShowImage("Cvsmooth_bur_no_scale", dst_blur_no_scale);
	cvShowImage("Cvsmooth_gaussian", dst_gaussian);
	cvShowImage("Cvsmooth_medeian", dst_medeian);
	cvShowImage("Cvsmooth_bilateral", dst_bilateral);

	cvWaitKey(0);

	cvDestroyAllWindows();
	cvReleaseImage(&ori_src);
	cvReleaseImage(&src);
	cvReleaseImage(&dst_blur);
	cvReleaseImage(&dst_blur_no_scale);
	cvReleaseImage(&dst_gaussian);
	cvReleaseImage(&dst_medeian);
	cvReleaseImage(&dst_bilateral);
	return 0;
}

转载于:https://www.cnblogs.com/Blackops/p/5857010.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值