數學之路-python計算實戰(7)-機器視覺-影象產生加性零均值高斯噪聲
影象產生加性零均值高斯噪聲,在灰度圖上加上噪聲,加上噪聲的方式是每個點的灰度值加上一個噪聲值,噪聲值的產生方式為Box-Muller演算法生成高斯噪聲。
在計算機模擬中,經常需要生成正態分佈的數值。最基本的一個方法是使用標準的正態累積分佈函式的反函式。除此之外還有其他更加高效的方法,Box-Muller變換就是其中之一。另一個更加快捷的方法是ziggurat演算法。下面將介紹這兩種方法。一個簡單可行的並且容易程式設計的方法是:求12個在(0,1)上均勻分佈的和,然後減6(12的一半)。這種方法可以用在很多應用中。這12個數的和是Irwin-Hall分佈;選擇一個方差12。這個隨即推導的結果限制在(-6,6)之間,並且密度為12,是用11次多項式估計正態分佈。
Box-Muller方法是以兩組獨立的隨機數U和V,這兩組數在(0,1]上均勻分佈,用U和V生成兩組獨立的標準常態分佈隨機變數X和Y:
- 。
這個方程的提出是因為二自由度的卡方分佈很容易由指數隨機變數(方程中的lnU)生成。因而通過隨機變數V可以選擇一個均勻環繞圓圈的角度,用指數分佈選擇半徑然後變換成(正態分佈的)x,y座標。
Box-Muller 是產生隨機數的一種方法。Box-Muller 演算法隱含的原理非常深奧,但結果卻是相當簡單。它一般是要得到服從正態分佈的隨機數,基本思想是先得到服從均勻分佈的隨機數再將服從均勻分佈的隨機數轉變為服從正態分佈。
# -*- coding: utf-8 -*- #加性零均值高斯噪聲 #code:
[email protected] import cv2 import numpy as np fn="test2.jpg" myimg=cv2.imread(fn) img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY) param=30 #灰階範圍 grayscale=256 w=img.shape[1] h=img.shape[0] newimg=np.zeros((h,w),np.uint8) for x in xrange(0,h): for y in xrange(0,w,2): r1=np.random.random_sample() r2=np.random.random_sample() z1=param*np.cos(2*np.pi*r2)*np.sqrt((-2)*np.log(r1)) z2=param*np.sin(2*np.pi*r2)*np.sqrt((-2)*np.log(r1)) fxy=int(img[x,y]+z1) fxy1=int(img[x,y+1]+z2) #f(x,y) if fxy<0: fxy_val=0 elif fxy>grayscale-1: fxy_val=grayscale-1 else: fxy_val=fxy #f(x,y+1) if fxy1<0: fxy1_val=0 elif fxy1>grayscale-1: fxy1_val=grayscale-1 else: fxy1_val=fxy1 newimg[x,y]=fxy_val newimg[x,y+1]=fxy1_val cv2.imshow('preview',newimg) cv2.waitKey() cv2.destroyAllWindows()
本部落格所有內容是原創,如果轉載請註明來源
下面部分程式碼為彩色影象的高斯噪聲產生# -*- coding: utf-8 -*-
#加性零均值高斯噪聲
#code:[email protected]
import cv2
import numpy as np
fn="test2.jpg"
myimg=cv2.imread(fn)
img=myimg
param=30
#灰階範圍
grayscale=256
w=img.shape[1]
h=img.shape[0]
newimg=np.zeros((h,w,3),np.uint8)
for x in xrange(0,h):
for y in xrange(0,w,2):
r1=np.random.random_sample()
r2=np.random.random_sample()
z1=param*np.cos(2*np.pi*r2)*np.sqrt((-2)*np.log(r1))
z2=param*np.sin(2*np.pi*r2)*np.sqrt((-2)*np.log(r1))
.........
.........
newimg[x,y,0]=fxy_val_0
newimg[x,y,1]=fxy_val_1
newimg[x,y,2]=fxy_val_2
newimg[x,y+1,0]=fxy1_val_0
newimg[x,y+1,1]=fxy1_val_1
newimg[x,y+1,2]=fxy1_val_2
cv2.imshow('preview',newimg)
cv2.waitKey()
cv2.destroyAllWindows()
相關推薦
數學之路-python計算實戰(7)-機器視覺-影象產生加性零均值高斯噪聲
影象產生加性零均值高斯噪聲,在灰度圖上加上噪聲,加上噪聲的方式是每個點的灰度值加上一個噪聲值,噪聲值的產生方式為Box-Muller演算法生成高斯噪聲。在計算機模擬中,經常需要生成正態分佈的數值。最基本的一個方法是使用標準的正態累積分佈函式的反函式。除此之外還有其他更加高效的
數學之路-python計算實戰(15)-機器視覺-濾波去噪(歸一化塊濾波)
# -*- coding: utf-8 -*- #code:[email protected] #歸一化塊濾波 import cv2 import numpy as np fn="tes
數學之路-python計算實戰(4)-Lempel-Ziv壓縮(2)
per tex alink header 一次 borde tar 文本文 寫入文件 Format characters have the following meaning; the conversion between C and Python values shou
數學之路-python計算實戰(1)-ubuntu安裝pypy
sudo 安裝過程 zip ima cut popu -o ack sin Get the source code. The following packages contain the source at the same revision as the above b
數學之路-python計算實戰(5)-初識numpy以及pypy下執行numpy
NNumPy系統是Python的一種開源的數字擴充套件。這種工具可用來儲存和處理大型矩陣,比Python自身的巢狀列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。據說NumPy將Python相當於變成一種免費的更強
機器學習之路: python k近鄰分類器 鳶尾花分類預測
ber AD uda classes them cal col rds esc 使用python語言 學習k近鄰分類器的api 歡迎來到我的git查看源代碼: https://github.com/linyi0604/kaggle 1 from sklearn
機器學習之路: python 決策樹分類 預測泰坦尼克號乘客是否幸存
現象 info n) 指標 ssi 直觀 learn 保持 afr 使用python3 學習了決策樹分類器的api 涉及到 特征的提取,數據類型保留,分類類型抽取出來新的類型 需要網上下載數據集,我把他們下載到了本地, 可以到我的git下載代碼和數據集: https
機器學習之路: python 線性回歸LinearRegression, 隨機參數回歸SGDRegressor 預測波士頓房價
誤差 差異 ces color square 均方誤差 rep score 處理 python3學習使用api 線性回歸,和 隨機參數回歸 git: https://github.com/linyi0604/MachineLearning 1 from skle
機器學習和python學習之路史上吐血整理機器學習python大資料技術書從入門到進階最全本(書籍推薦珍藏版)
“機器學習/深度學習並不需要很多數學基礎!”也許你在不同的地方聽過不少類似這樣的說法。對於鼓勵數學基礎不好的同學入坑機器學習來說,這句話是挺不錯的。不過,機器學習理論是與統計學、概率論、電腦科學、演算法等方面交叉的領域,對這些技術有一個全面的數學理解對理解演算法的內部工作機
OpenCV實踐之路——Python的安裝和使用
imread ipp 多少 變量 target 好的 文件 記錄 span 本文由@星沈閣冰不語出品,轉載請註明作者和出處。 文章鏈接:http://blog.csdn.net/xingchenbingbuyu/article/details/
Python大神之路 - Python基礎語法1
介紹 pan python基礎 發展 soft windows python介紹 ffffff 輸入 本章內容 Python介紹 發展史 Python 2 or 3? windows安裝Python Hello World程序 變量 用戶輸入 數據類型 數據運算符 作業
《Python學習之路 -- Python基礎之叠代器及for循環工作原理》
pre 循環 next 是我 我們 png 捕獲 模擬 檢查 提到叠代器不得不說叠代器協議,叠代器協議是指:對象必須提供一個__next__()方法,執行該方法要麽返回叠代中的下一項,要麽就拋出一個StopIteration異常(相當於報錯的意思)以終止叠代。然而遵循這
《Python學習之路 -- Python基礎之裝飾器》
接收 學習之路 代碼 內部 AS OS 如果 col PE 裝飾器,本質上是一個函數,更加直觀的說,裝飾器就是等於 高階函數 + 函數嵌套 + 閉包 ,裝飾器是具有某個基礎功能的函數,這種功能可以加成到其他函數上,使得其他函數的功能更加強大。除此以外,裝飾器還有兩個重要
《Python學習之路 -- Python基礎之切片》
nas col 結束 了解 默認值 對象 學習 好的 tuple 切片從字面上的意思也能很好的了解,就是將某個東西切成一個片段。也就是說,切片是一種對數據的操作,截取數據中的一個片段,字符串,列表和元組都支持切片。 # 語法: 操作對象[起始位置:結束位置:步長] #
Python之路--Python基礎9--Socket編程
主機 make 深入理解 pre odi data splay 異常 inpu 一、socket介紹 Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Sock
Python之路--Python基礎
圖片 數據 png red display socket 並發編程 memcached 異步 目錄: 第一篇:初識Python 第二篇:數據類型 第三篇:數據運算、控制流、文件操作 第四篇:函數 第五篇:內置函數 第六篇:模
菜鳥之路——Python學習之串口通信(與STC89C51)源碼及打包發布試水
方式 lin enc error: pri 打開端口 端口號 兩個 關閉 想做上位機控制系統,就拿51來試試水。 Python環境:Win10+Python 3.6.4(64位)+serial,pyserial 一、上位機程序的編寫 import serial ser =
西遊之路——python全棧——Form組件字段及動態綁定
.html pytho rom short val 動態綁定 class form local 一、HTML中 | safe 可在後臺用以下方式處理 1 text = "<input type‘text‘ />" 2 from django.utils.sa
西遊之路——python全棧——瀑布流
oca url ret sel lang spa json 找到 create ############################### class Picture(models.Model): src = models.ImageField(verbo
Python學習之路——Python基礎之運算符
學習之路 type text 技術 計算 python基礎 tex fff oss 算術運算 先and 後 or 先計算括號內 執行順序: 從前到後 結果 True OR ==> True True And ==> 繼續走 False Or