Opencv 之 图像模糊(图像平滑)

开头几句题外话:

小伙伴们我回来了,想做友链的小伙伴,想租广告位的小伙伴,我们邮箱联系!虽然站目前的流量并不大,不过日后上了Alex排名,势必丰厚回馈各位小伙伴。相信我的诚意与努力小伙伴们都有目共睹,我们会共同创造一个美好的站的。(有会seo的小伙伴也可以联系我,创造价值的小伙伴我一定重金酬谢)我是Y,下面开始我们今天的行程吧!

Opencv 之 图像模糊(图像平滑)

想实现图像模糊可以用低通滤波器,而且去噪也可以用这个,我们上一章说过。

是什么原理呢?

答:去除高频。

-什么是高频?

-比如说噪音,边界

-那图像边界不没有了?

-并不是没有了,只是模糊了。

 

我们有四种方法可以实现模糊:

  1. 平均
  2. 高斯模糊
  3. 中值模糊
  4. 双边滤波

今天我们来说一下第一种:

Opencv 模糊之 平均法。

平均法使用了这个函数:

  • cv2.blur()

这个函数有 两个参数

  1. 输入图像
  2. 低通滤波器的大小(模板大小)

来看下模糊后是啥样的~

看看模糊后是什么样的~

 

原图像也发一下

原图像

我很纳闷啊,为啥这是白色的背景,处理完就变黑了呢?

其实原来就有这个问题,有人知道原因吗?

上源码!

# -*- coding:utf-8 -*-
"""
Created on Thu Mar 13 20:43:11 2017

@author: Y

"""

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('C:\Users\Administrator\Desktop\opencvimg\Logo.png')

blur = cv2.blur(img,(3,3))

plt.subplot(121), plt.imshow(img), plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(blur), plt.title('Blurred')
plt.xticks([]), plt.yticks([])
plt.show()

 

 

今天的内容不多,很快会有下一章的内容更新的。大家都看了开头语吧,希望有意向的小伙伴能和我邮箱联系,成为我的友链,你会一直佩服自己的眼光;来组我的广告位,未来的你一定会庆幸自己在一个网站成长之前就预见了美好的发展。我是Y,各位小伙伴,晚安!

 

 

 

Opencv图像平滑之2D卷积

今天我们来认识一下Opencv图像平滑之2D卷积。

啥是2D卷积呢?

要想明白什么是2D卷积,我们首先要明确两个概念:

LPF和HPF

  • LPF:低通道滤波,用来去除噪音,模糊图像。
  • HPF:高通道滤波,用来找到图像的边缘。

-卷积就是用多种方法处理频域特征

-我还是看不懂

算啦,我们先来看下具体函数

  • cv.filter2D()

这一章难道就结束了吗?

no。no。以后我们还要学习一系列2D卷积的方法

Opencv图像模糊(图像平滑)

Opencv高斯模糊

Opencv中值模糊

Opencv双边滤波

 

今天我们主要来看下2D卷积之使用平均滤波器。

我们看下这个平均滤波器的效果吧。

这是效果图~
再来看一张效果图~

啊!我的眼睛又瞎了!怎么这几张这么折磨人的眼睛啊!

我们看下原图

lemongrowup原图像
这张可爱的海豹宝宝就是原图像

为啥命名原图像和orginal的图像不同呢?

这个我暂时也没有搞明白,等会的人来指导我~

我们可以看下源码,

这些天我们谈的都差不多,

就是改了个函数与参数的问题。

# -*- coding:utf-8 -*-
"""
Created on Thu Mar 9 21:35:22 2017

@author: Y

"""

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('C:\Users\Administrator\Desktop\opencvimg\haibaobaobao.jpg')



#同样的道理,先定义个参数
kernel = np.ones((5,5),np.float32)/25
#cv2.filter2D的参数同那些我们遇到的一样
dst = cv2.filter2D(img,-1,kernel)


plt.subplot(121),plt.imshow(img),plt.title('Original')
plt.xticks([]),plt.yticks([])
plt.subplot(122),plt.imshow(dst),plt.title('Averaging')
plt.xticks([]),plt.yticks([])
plt.show()

 

今天就到这里啦,欢迎大家来我的博客做客,如果大家喜欢我的网站,可以转发给更多的人看。今天的内容不多,希望大家可以趁机复习原来的知识。原创不易,希望大家珍惜。我是Y,大家晚安~