图像Smoothing/Blurring
来源:互联网 发布:零售业大数据应用实例 编辑:程序博客网 时间:2024/06/03 17:52
Smooth/Blurring是图片预处理的一种技术,这样可以减弱图片中突变点对后续处理的影响,像噪音这样的突变点是需要处理的;也可以降低图像的分辨率,因为图像变模糊了。这种技术相对于图像锐化,增强突变点。
1. 普通的smoothing
输出的像素为周围一定范围内的像素算数平均值;boxFilter是blur的一般形式,前者可以指定输出的深度,数据格式,比如:CV_32F
Simple Blur and the Box Filter
void cv::blur(
cv::InputArray src, // Input image
cv::OutputArray dst, // Result image
cv::Size ksize, // Kernel size
cv::Point anchor = cv::Point(-1,-1), // Location of anchor point
int borderType = cv::BORDER_DEFAULT // Border extrapolation to use
);
void cv::boxFilter(
cv::InputArray src, // Input image
cv::OutputArray dst, // Result image
int ddepth, // Output depth (e.g., CV_8U)
cv::Size ksize, // Kernel size
cv::Point anchor = cv::Point(-1,-1), // Location of anchor point
bool normalize = true, // If true, divide by box area
int borderType = cv::BORDER_DEFAULT // Border extrapolation to use
);
2.中值滤波/Median Filter
采用周围一定范围内像素值的中值作为输出;
中值和平均值没有必然的关系。中值是将所给的一组数从小到大或从大到小排列,奇数个数的话取中间的数字,偶数个数的话取中间两个数的平均数;而平均值就是把这组数相加,然后除以这组数的个数。
中值的优点是不受偏大或偏小数据的影响,很多情况下用它代表全体数据的一般水平更合适。如果数列中存在极端变量值,用中位数做代表值就比平均数更好
void cv::medianBlur(
cv::InputArray src, // Input image
cv::OutputArray dst, // Result image
cv::Size ksize // Kernel size
);
3.高斯滤波/Gaussian Filter
输出的像素是原像素与2D高斯函数模板进行卷积的结果;
2D高斯模板需要确定M、N,sigma(M:长,N:宽,sigma:标准差),python代码例子如下:M=5,N=5,sigma=0.6
******************************************************************************
import numpy as np
x, y = np.meshgrid(np.linspace(-2,2,5), np.linspace(-2,2,5))
sigma=0.6
coefficient=1/(2*np.pi*sigma**2)
value1=np.exp(-( x**2+y**2)/ ( 2.0 * sigma**2 ) )
g=coefficient*value1
******************************************************************************
void cv::GaussianBlur(
cv::InputArray src, // Input image
cv::OutputArray dst, // Result image
cv::Size ksize, // Kernel size
double sigmaX, // Gaussian half-width in x-direction
double sigmaY = 0.0, // Gaussian half-width in y-direction
int borderType = cv::BORDER_DEFAULT // Border extrapolation to use
);
4.双边滤波/bilateral filter
相对于高斯滤波,能够更好的保存边缘信息;
void cv::bilateralFilter(
cv::InputArray src, // Input image
cv::OutputArray dst, // Result image
int d, // Pixel neighborhood size (max distance)
double sigmaColor, // Width param for color weight function
double sigmaSpace, // Width param for spatial weight function
int borderType = cv::BORDER_DEFAULT // Border extrapolation to use
);
- 图像Smoothing/Blurring
- Blurring/Smoothing
- OpenCV&图像处理_2:平滑smoothing模糊blurring操作
- Gaussian Blurring
- Blurring the Tiers @ JDJ
- gamma correct blurring
- 图像处理滤波器(三)——高斯平滑滤波器(Gaussian Smoothing Filter)
- 图像处理滤波器(四)——最值滤波器(Conservative Smoothing Filter)
- 使用Mumford Shah 函数平滑图像Smoothing images with the Mumford Shah functional
- Fast Image Blurring with CUDA
- data smoothing
- Gaussian Smoothing
- 平滑(smoothing)
- 平滑滤波器(smoothing filter)
- Good Turing Smoothing
- Enable smoothing on VideoDisplay
- edge preserving smoothing
- \tutorial_code\ImgProc\Smoothing.cpp
- vi(vim) 编辑器之神的神操作命令---大仙的成长道路
- 如何用Coding Block
- unityの刚体坑
- 选择正确的云服务供应商时首要考虑的因素
- leetcode 560. Subarray Sum Equals K 动态规划DP子数组求和
- 图像Smoothing/Blurring
- 一分钟了解“好”接口的设计与实现
- 安卓基础拾捡
- java开发-入门准备工作
- PHP-常用函数API
- Laravel ORM 数据model操作
- IBM编程大赛冠军出炉:清华大学黎建成、滴滴出行顾阳夺冠(附大赛详细采访)
- AI一分钟 | 北京高考首次启用人脸识别,英语听力机考玩出新高度;厉害了搜狗!超越Google,“唇语识别”准确率竞达60%以上
- “/bin 不在PATH 环境变量中,故无法找到该命令”