噪声处理

噪声的存在严重影响了遥感图像的质量,因此在图像增强处理和分类处理之前,必须予以纠正.图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。噪声在理论上可以定义为“不可预测,只能用统计方法来认识的随机误差”。

  1. 高斯噪声:高斯噪声符合高斯分布
  2. 椒盐噪声:椒盐噪声又称脉冲噪声,它随机改变一些像素值,是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。

图一  原图片

图二  高斯噪声图片

图三 椒盐噪声图片

去噪处理

消除噪声成分成为平滑或滤波,他有两个重要的要求,第一是不能破坏图片轮廓边缘的重要信息,第二是图片要清晰,视觉效果好.噪声处理有均值滤波/高斯滤波/中值滤波/双线性滤波

高斯噪音下的滤波结果

椒盐噪声下的滤波结果

边缘检测

边缘检测算法有差分检测/Reboerts算子/Sobel算子/Prewitt算子/Kirsch算子/Laplace算子

原图片边缘检测

高斯噪声边缘检测

椒盐噪声边缘检测
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
import PIL.Image as Image
import skimage
from skimage import filters#实现均值滤波的代码def imgConvolve(image, kernel):'''卷积操作'''img_h = int(image.shape[0])img_w = int(image.shape[1])kernel_h = int(kernel.shape[0])kernel_w = int(kernel.shape[1])#padding 图片的大小不变padding_h = int((kernel_h - 1) / 2)padding_w = int((kernel_w - 1) / 2)convolve_h = int(img_h + 2*padding_h)convolve_w = int(img_w + 2*padding_w)#分配空间img_padding = np.zeros((convolve_h, convolve_w))#将像素值填充进去img_padding[padding_h:padding_h+img_h, padding_w:padding_w+img_w] = image[:, :]image_convolve = np.zeros(image.shape)#进行卷积for i in range(padding_h,padding_h+img_h):for j in range(padding_w,padding_w+img_w):image_convolve[i-padding_h][j-padding_w] = int(np.sum(img_padding[i-padding_h:i + padding_h+1, j-padding_w:j+padding_w+1]*kernel))return image_convolvedef avgFilter(image, kernel):'''均值滤波'''img = imgConvolve(image, kernel)return img * (1.0 / kernel.size)#读取图片,灰度处理
data = cv.imread("filter_test.jpg")
data = cv.cvtColor(data, cv.COLOR_BGR2GRAY)#保存灰度图片
cv.imwrite("real_img.jpg", data, [int(cv.IMWRITE_JPEG_QUALITY), 70])
cv.waitKey(0)
cv.destroyWindows()kernel_1 = np.ones([3,3])
kernel_2 = np.ones([5,5])#均值滤波模糊处理
avg_data_1 = avgFilter(data, kernel_1)
avg_data_2 = avgFilter(data, kernel_2)#保存图片
cv.imwrite('avg_filter_1.jpg',avg_data_1,[int(cv.IMWRITE_JPEG_QUALITY),70])  #jpeg格式,质量为70
cv.imwrite('avg_filter_2.jpg',avg_data_2,[int(cv.IMWRITE_JPEG_QUALITY),70])  #jpeg格式,质量为70#把保存图片
img1 = cv.imread("avg_filter_1.jpg")
img2 = cv.imread("avg_filter_2.jpg")
imgs = np.hstack([img1, img2])
cv.imwrite("diff_filter.jpg", imgs, [int(cv.IMWRITE_JPEG_QUALITY), 70])
#生成含有噪声图片rel_img = cv.imread("mouse.jpg")  #(412, 550, 3)
#加入高斯噪声
noise_img = skimage.util.random_noise(rel_img, mode='gaussian', seed=None, clip=True)
#salt椒盐滤波
noise_img = skimage.util.random_noise(rel_img, mode='salt', seed=None, clip=True)
plt.figure(figsize=(10, 10))
plt.imshow(noise_img)
plt.xticks([])
plt.yticks([])
plt.savefig("gau_noise_img.jpg")
plt.show()
#opencv实现降噪img_path = "gau_noise_img.jpg"
img = cv.imread(img_path)#均值滤波
img1 = cv.blur(img, (5,5))#高斯滤波
img2 = cv.GaussianBlur(img, (5,5), 0)  #0指sigma#中指滤波
img3 = cv.medianBlur(img, 5)#双值滤波
img4 = cv.bilateralFilter(img, 9, 75, 75)titles = ['real', 'mean', 'gaussian', 'median', 'bilateral']
imgs = [img, img1, img2, img3, img4]plt.figure(figsize=(20, 10))
for i in range(5):plt.xticks([])plt.yticks([])plt.subplot(2, 3, i+1)  #下标是从1开始的plt.imshow(imgs[i])plt.title(titles[i])#先save在show,因为如果show后会产生一张新的空白图片,再保存下载的图片就是空白的
#画质70
plt.xticks([])
plt.yticks([])
plt.savefig("real_filter.jpg", quality=100)
plt.show()
#边缘检测real_img = cv.imread("mouse.jpg")
real_img = cv.cvtColor(real_img, cv.COLOR_BGR2GRAY)gau_filter_img = cv.imread("gau_noise_img.jpg")
gau_filter_img = cv.cvtColor(gau_filter_img, cv.COLOR_BGR2GRAY)salt_filter_img = cv.imread("salt_noise_img.jpg")
salt_filter_img = cv.cvtColor(salt_filter_img, cv.COLOR_BGR2GRAY)#-1表示和原图像相同的深度, 两个1分别是两个方向的边缘检测
real_sobel_img = cv.Sobel(salt_filter_img, -1, 1, 1, ksize=3)
real_prewitt_img = filters.prewitt(salt_filter_img)titles = ["real", "sobel", "prewitt"]
imgs = [salt_filter_img, real_sobel_img, real_prewitt_img]plt.figure(figsize=(20, 10))
for i in range(3):plt.xticks([])plt.yticks([])plt.subplot(1,3,i+1)plt.imshow(imgs[i], cmap="gray")  #显示灰度图即可plt.title(titles[i])plt.xticks([])
plt.yticks([])
plt.savefig("salt_edge_img.jpg")
plt.show()

图片噪声 降噪 边缘检测相关推荐

  1. 图片降噪 java_Python图片验证码降噪 — 8邻域降噪

    简介 图片验证码识别的可以分为几个步骤,一般用 Pillow 库或 OpenCV 来实现,这几个过程是: 1.灰度处理&二值化 2.降噪 3.字符分割 4.标准化 5.识别 所谓降噪就是把不需 ...

  2. python+opencv+图像特效(图像灰度处理、颜色翻转、图片融合,边缘检测,浮雕效果,颜色映射)

    原图 图像灰度处理 #方式1 import cv2 #读取彩色原图 img0=cv2.imread('E:/python_cv/01.jpg',1) #读取灰度图 img1=cv2.imread('E ...

  3. python实现浮雕效果的原理_python+opencv+图像特效(图像灰度处理、颜色翻转、图片融合,边缘检测,浮雕效果,颜色映射)...

    原图 图像灰度处理 #方式1 import cv2 #读取彩色原图 img0=cv2.imread('E:/python_cv/01.jpg',1) #读取灰度图 img1=cv2.imread('E ...

  4. python图像条状状噪声_python检测图片噪声(噪点噪声、雪花噪声、条纹噪声)

    首先是噪声的大体分类: 噪点噪声:又称脉冲噪声.椒盐噪声 雪花噪声:又称高斯噪声 条纹噪声: 分析完这些噪声的大致分布情况之后 importcv2from PIL importImagefrom PI ...

  5. python 图片验证码降噪、识别

    from PIL import Image import pytesseract import os''' 安装 tesseract-ocr-setup-3.05.01.exe 下面的环境变量根据自己 ...

  6. 车道线检测|利用边缘检测的原理对车道线图片进行识别

    前言 那么这里博主先安利一些干货满满的专栏了! 这两个都是博主在学习Linux操作系统过程中的记录,希望对大家的学习有帮助! 操作系统Operating Syshttps://blog.csdn.ne ...

  7. OPENCV打开图片进行边缘检测

    OPENCV打开图片并且进行边缘检测 #ifdef _CH_ #pragma package <opencv> #endif#ifndef _EiC #include "cv.h ...

  8. 如何给图片降噪?看完你就学会了

    当你在夜间用手机进行拍照,拍出来的照片会显得比较粗糙,你知道为什么吗?因为光线不足,就会导致拍摄后传输出来的照片产生噪点,从而使照片的像素看起来不是那么的清晰.那么你们知道图片怎么降噪吗?下面就让我们 ...

  9. 如何给图片降噪?图片噪点模糊变清晰的方法分享

    我们日常出去旅游或者游玩,是肯定离不开拍照的,但是每个人的拍照技术都是不一样的,加上环境.设备等等因素,回家后看到照片也是满满的噪点不太清晰,拍摄的照片由于有这些噪点的存在,画质看起来就会比较模糊,那 ...

最新文章

  1. mybaties xml 的头部
  2. Python import导入模块与函数方法 Python语言基础【1】
  3. 英文聊天常用缩写单词
  4. 学java还是python还是php-大一的时候学习Python,大二学java好还是php?
  5. 090525 T 站点地图接口
  6. 小凡的Python之路——启航
  7. Linux:使用libgen.h:basename,dirname
  8. 淘淘商城---8.9
  9. 轰动全球,一个月7级博客大V是如何炼成的!
  10. 【自然语言处理基础技能(NLP)】jieba中文文本处理
  11. Java鱼雷apex大套件,SRAM APEX 1x11S公路车油碟单盘套件使用体验
  12. [英语六级] 六级通关笔记 — 翻译题
  13. 谷歌今夏将对谷歌新闻进行一项名为Google Flipper的升级,可显示整个内容
  14. 看见阿里的语音识别系统很好
  15. 仿穷游项目--bug集
  16. 地球上空首次绽放焰火汉字“未来”
  17. 中国图形图象学报和计算机科学,中国图象图形学报(中国图象图形学报影响因子排名)...
  18. matlab table中的文字转string_如用matlab实现SEM/TEM/金相等图片自动加标尺???
  19. JavaScript基础总结(2)
  20. 胖了,也是该减减肥了

热门文章

  1. 线性反馈移位寄存器(LFSR)和 Berlekamp-Massey 算法
  2. 【2】基于python的网路爬虫笔记(实战)
  3. 【通往财富自由之路】为什么你总是半途而废?
  4. CentOS 7 不显示ip
  5. 十大Python机器学习开源项目
  6. 微信支付 php简单源码,php微信支付相关源码
  7. 赋能智慧城市“规、建、运、管、服”——Umbrameta CIM平台探索“CIM+”应用超市
  8. 项目管理优秀的工作分解结构WBS 8大必选项
  9. 机器学习/深度学习/图机器学习 学习小结
  10. 有关计算机专业的自荐信英文,计算机专业英文自荐信