python代码学习-数据处理图片加遮挡、噪声、模糊
生活随笔
收集整理的這篇文章主要介紹了
python代码学习-数据处理图片加遮挡、噪声、模糊
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python代碼學習-數據處理圖片加遮擋、噪聲、模糊
?
(一)python代碼學習-數據處理圖片加遮擋
代碼:
from matplotlib import pyplot as plt from PIL import Image, ImageDraw import pylab import numpy as np impath = "000001.jpg" img1 = Image.open(impath) img1 = np.asarray(img1)/255.00 img2 = Image.open(impath) draw = ImageDraw.Draw(img2) draw.rectangle((60,90,100,120), fill = (0,0,0)) img2 = np.asarray(img2)/255.00 plt.figure(1) plt.subplot(121) plt.imshow(img1) plt.title("Origin picture") plt.subplot(122) plt.imshow(img2) plt.title("Add obstacle") plt.savefig("obstacle_image.jpg") pylab.show()(二)python代碼學習-數據處理:圖片加噪聲
數據加噪:
- 高斯噪聲(Gaussian noise)是指它的概率密度函數服從高斯分布的一類噪聲。如果一個噪聲,它的幅度分布服從高斯分布,而它的功率譜密度又是均勻分布的,則稱它為高斯白噪聲。
- 椒鹽噪聲(salt-and-pepper noise)是指兩種噪聲,一種是鹽噪聲(salt noise),另一種是胡椒噪聲(pepper noise)。鹽=白色(0),椒=黑色(255)。前者是高灰度噪聲,后者屬于低灰度噪聲。一般兩種噪聲同時出現,呈現在圖像上就是黑白雜點。
為圖片增加高斯噪聲代碼
from matplotlib import pyplot as plt from skimage import io import skimage import pylab impath = "000001.jpg" image = io.imread(impath) img1 = image / 255.00 img2 = skimage.util.random_noise(image,mode='gaussian',seed=None,clip=True) plt.figure(1) plt.subplot(121) plt.imshow(img1) plt.title("Origin picture") plt.subplot(122) plt.imshow(img2) plt.title("Add Gaussian noise") pylab.show() plt.savefig("noise_image.jpg")- 增加高斯噪聲
注意事項:
- Peckle, Poisson, Localvar, and Gaussian noise 加上噪聲后,值可能為負值,也可能超過255;默認情況下,clip參數值為True,將會clip掉這些超過區間的點,如果clip設置為False,就要注意有可能包含一些超過區間的點。
- Skimage讀取圖像是RGB,而Opencv是BGR
- Skimage讀取圖像后是(height, width, channel)<br>
(三)python代碼學習-數據處理:數據加模糊
高斯模糊:
- 本質上是低通濾波器,輸出圖像的每個像素點是原圖像上對應像素點與周圍像素點的加權和。
- 即用高斯分布權值矩陣與原始圖像矩陣做卷積運算。
opencv 函數:
blur = cv2.GaussianBlur(img,(5,5),0)函數參數說明:
- (5, 5)表示高斯矩陣的長與寬都是5,
- 標準差取0時OpenCV會根據高斯矩陣的尺寸自己計算。
- 高斯矩陣的尺寸越大,標準差越大,處理過的圖像模糊程度越大。
圖片高斯模糊代碼
from matplotlib import pyplot as plt import cv2 import pylab impath = "000001.jpg" kernel_size = (5,5) sigma = 1.5 img11 = cv2.imread(impath) # BGR -> RGB b,g,r=cv2.split(img11) img11=cv2.merge([r,g,b]) # BGR -> RGB # img2=img[: , : , : : -1] img1 = img11/255.00 img2 = cv2.GaussianBlur(img1,kernel_size,sigma) # cv2.imwrite(blur_image, img2) plt.figure(1) plt.subplot(121) plt.imshow(img1) plt.title("Origin picture") plt.subplot(122) plt.imshow(img2) plt.title("Add Gaussian Blur") plt.savefig("blur_image.jpg") pylab.show()總結
以上是生活随笔為你收集整理的python代码学习-数据处理图片加遮挡、噪声、模糊的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数字图像处理-图像噪声与去噪
- 下一篇: 数字图像噪声_Python