使用cvSmooth()函数以五种方式平滑图像
来源:互联网 发布:体体育训练软件 编辑:程序博客网 时间:2024/06/05 15:37
简单模糊、简单无缩放模糊、中值滤波、高斯模糊、双边滤波
#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/highgui.hpp>#include <opencv2/core/core.hpp>#include <stdio.h>#include <cstdlib>using namespace std;using namespace cv;int main(int argc, const char * argv[]) { /*使用cvSmooth多种方法平滑处理图像*/ const char filename[] = "/Users/linwang/Desktop/Lena.png"; IplImage * image = cvLoadImage(filename); cvNamedWindow("Original",0); cvNamedWindow("Blur",0); cvNamedWindow("Blur-No-Scale",0); cvNamedWindow("Median",0); cvNamedWindow("Gussian",0); cvNamedWindow("BIL",0); cvShowImage("Original", image); /*1.简单模糊:*/ IplImage * blur = cvCreateImage(cvSize(image->width, image->height), image->depth, image->nChannels); cvSetZero(blur); cvSmooth(image, blur,CV_BLUR,5,5); cvShowImage("Blur", blur); /*2.简单无缩放模糊*/ /*注意:使用CV_BLUR_NO_SCALE平滑类型,输入图像和输出图像必须有不同的数据精度*/ IplImage * Blur_NoScale = cvCreateImage(cvSize(image->width, image->height), IPL_DEPTH_16S, image->nChannels); Blur_NoScale->origin = image->origin; cvSetZero(Blur_NoScale); cvSmooth(image, Blur_NoScale,CV_BLUR_NO_SCALE,5,5); cvShowImage("Blur-No-Scale", Blur_NoScale); /*3.中值滤波*/ IplImage * Median = cvCloneImage(image); cvSetZero(Median); cvSmooth(image, Median,CV_MEDIAN,5,5); cvShowImage("Median", Median); /*4.高斯模糊*/ IplImage * Gussian = cvCloneImage(image); cvSetZero(Gussian); cvSmooth(image, Gussian,CV_GAUSSIAN,5,5,3,3); cvShowImage("Gussian", Gussian); /*5.中值滤波*/ /*特别注意:CV_BILATERAL平滑类型的输入和输出图像必须是8u,也就是灰度图*/ //因该平滑类型不支持in place方式,故多次平滑时注意增加临时图像 IplImage * BIL = cvCloneImage(image); IplImage * Temp_BIL = cvCloneImage(image); cvSetZero(BIL); cvSetZero(Temp_BIL); cvSmooth(image, Temp_BIL,CV_BILATERAL,3,3,11,11); int count = 0; while (count<100) { cvSmooth(Temp_BIL, BIL,CV_BILATERAL,7,7,11,11); cvCopy(BIL, Temp_BIL); count++; } cvShowImage("BIL", BIL); cvWaitKey(0); cvReleaseImage(&image); cvReleaseImage(&blur); cvReleaseImage(&Blur_NoScale); cvReleaseImage(&Median); cvReleaseImage(&Gussian); cvReleaseImage(&BIL);}
阅读全文
0 0
- 使用cvSmooth()函数以五种方式平滑图像
- openCV平滑函数----cvSmooth
- 图像处理 - 平滑处理(cvSmooth)
- Opencv cvSmooth平滑滤波函数
- Learning OpenCV 2.4.9 图像平滑 cvSmooth
- OpenCV之cvSmooth函数平滑滤波
- OpenCV之cvSmooth函数平滑滤波
- OpenCV之cvSmooth函数平滑滤波
- OpenCV之cvSmooth函数平滑滤波
- OpenCV之cvSmooth函数平滑滤波
- opencv学习笔记6 图像平滑处理cvSmooth
- opencv图像平滑滤波处理cvSmooth的汇总
- cvSmooth 平滑处理
- opencv简单平滑变换:cvSmooth (5)
- 【学习opencv】IplImage平滑滤波 cvSmooth
- Opencv中cvSmooth函数
- OpenCV--cvSmooth函数
- OPENCV Cvsmooth 函数
- 创建、修改、删除Oracle表空间
- Qt 实现多级菜单
- 认识Oracle表
- 调试存储过程
- mybatis中传入String类型参数的问题
- 使用cvSmooth()函数以五种方式平滑图像
- markdown编辑数学公式
- openstack学习记录(一) horizon二次开发部署(juno)
- 如何删除Oracle表中的数据
- css3 彩虹文字解答
- Oracle管理表
- bzoj 2724: [Violet 6]蒲公英(分块预处理)
- 文本居中方式总结
- Oracle非空约束