1. 程式人生 > >影象高斯分佈生成

影象高斯分佈生成

給定一些標記點的座標,希望生成其在影象中的高斯分佈圖。
首先,上公式:
(不造怎麼上公式。。嗯稍後學習學習再補充)

import numpy as np
import matplotlib.pyplot as plt

def gaussmapcreate():
    """load data to get:
    img, pnum, points""" 
    # imglist = os.listdir(imgpath)
    # img0 = cv2.imread(imgpath+'/'+imglist[0])
    gaussmap = np.zeros(shape=([img.shape[0
], img.shape[1]])) if pnum==0: return gaussmap h = img.shape[0] w = img.shape[1] Y, X = np.mgrid[0:h:1, 0:w:1] # positions = np.vstack([X.ravel(), Y.ravel()]) for p in xrange(pnum): x = points[p,0] y = points[p,1] v = [[0.2*m, 0], [0, 0.2*m]] #standard deviation#協方差為零
dx = v[0][0] DX = np.square(dx) dy = v[1][1] DY = np.square(dy) part1 = 1/(2*np.pi* dx * dy) p1 = -1.0/2 px = (X-x)**2/DX py = (Y-y)**2/DY Z = part1 * np.exp(p1 * (px + py)) gaussmap += Z plt.imshow(gaussmap) plt.colorbar() plt.show() return
gaussmap

以上是根據公式直接計算。
然而scipy庫中有函式直接得到高斯密度分佈。

from scipy import stats
Z0 = stats.norm.pdf(X, loc=x, scale=scale0)  
Z0 *= stats.norm.pdf(Y, loc=y, scale=scale0)

相關推薦

影象分佈生成

給定一些標記點的座標,希望生成其在影象中的高斯分佈圖。 首先,上公式: (不造怎麼上公式。。嗯稍後學習學習再補充) import numpy as np import matplotlib.p

Python 影象處理: 生成二維分佈蒙版

在影象處理以及影象特效中,經常會用到一種成高斯分佈的蒙版,蒙版可以用來做影象融合,將不同內容的兩張影象結合蒙版,可以營造不同的藝術效果。 I=M∗F+(1−M)∗B 這裡I 表示合成後的影象,F 表示前景圖,B 表示背景圖,M 表示蒙版,或者直接用

python 多維分佈資料生成

import numpy as np import matplotlib.pyplot as plt def gen_clusters(): mean1 = [0,0] cov1 = [[1,0],[0,10]] data = np.random.multi

MKL/VSL,vRngGaussian:生成分佈隨機數

以產生Gauss分佈隨機數為例,需要的步驟有: 1. 定義type(vsl_stream_state) :: stream。 按照手冊,stream的定義為“Random stream (or stream) is an abstract source

生成分佈隨機數的程式

本文用的是The Box-Muller transformation的改進方法,稱為Polar Method,迴圈裡面取代了Box-Muller方法中的sin和cos函式,從而提高了速度。 #include <stdlib.h> #include

影象處理 二維分佈

為X,Y的相關係數!為0;σ1=σ2=σ 二維高斯曲面的公式(x,y代表畫素的模板座標,模板中心位置為原點) 根據這個公式,我們可以計算得到不同σ的高斯模板。下面是C語言程式實現: 當σ即半徑為0.7時: #include "stdafx.h" #include

matlab生成二維服從分佈的資料

由於實驗需要,需要生成兩類模式的資料,同時這兩類資料要服從正態分佈(高斯分佈)。 使用matlab來實現: mu = [2 3]; SIGMA = [1 0; 0 2]; r = mvnrnd(mu,SIGMA,100); plot(r(:,1),r(:,2

利用CImage類對影象進行噪聲生成

    課上作業要求利用C裡面的自帶類庫對影象做一個高斯噪聲的生成,記錄一下大概的原理和步驟。    首先是對高斯函式的理解       這個函式是一個高斯概率密度的分佈表示式,表示為X~N(μ,σ²),其中μ表示均值,σ²表示方差,當μ=0,σ²=1時為標準正態分佈。   

如何生成指定均值和協方差矩陣的二維分佈資料

廢話不多說,先貼程式碼。function  y= main_generate_data()clcclear close all%%%%%%%%%%%%%%%%%%%%%%%%%生成實驗資料集rand('state',0)sigma_matrix1=eye(2);sigma_

[轉] 如何用matlab生成服從混合分佈的隨機數?

M=10; %產生M行N列的隨機數矩陣 N=8; miu1=1;%第一個分佈的引數 sigma1=2;%第一個分佈的引數 miu2=6;%第二個分佈的引數 sigma2=1;%第二個分佈的引數 R = 0.2*normrnd(miu1,sigma1,M,N)+0.8*normrnd(miu2,si

matlab練習程式(生成多維分佈概率密度函式)

clear all; close all; clc; randn('seed',0); %%一維高斯函式 mu=0; sigma=1; x=-6:0.1:6; y=normpdf(x,mu,sigma); plot(x,y); figure; %%二維或多維高斯函式 m

matlab生成兩類服從分佈的資料 mvnrnd

由於實驗需要,需要生成兩類模式的資料,同時這兩類資料要服從正態分佈(高斯分佈)。使用matlab來實現:mu = [2 3];SIGMA = [1 0; 0 2];r = mvnrnd(mu,SIGMA,100);plot(r(:,1),r(:,2),'r+');hold

分佈 協方差

高斯分佈(Gaussian Distribution)的概率密度函式(probability density function): 對應於numpy中: numpy.random.normal(loc=0.0, scale=1.0, size=None) 引數的意義為: loc:flo

【學習筆記】Pattern Recognition&Machine Learning [1.2] Probability Theory(2) 基於分佈和貝葉理論的曲線擬合

    高斯分佈不必贅述,這裡記錄個有意思的東西,即從高斯分佈和貝葉斯理論出發看曲線擬合(即選擇引數w)。     首先假設我們使用多項式擬合曲線,根據泰勒展開的方法,我們可以用有限項多項式在一定精度內擬合任何曲線。  &nb

機器學習儲備(2):分佈

今天講解獨立同分布的概念,高斯分佈,一維高斯分佈。 1、獨立同分布 指隨機過程中,任何時刻的取值都為隨機變數,如果這些隨機變數服從同一分佈,並且互相獨立,那麼這些隨機變數是獨立同分布。 先說說獨立這個概念。在預測德克薩斯州區域的房屋價值時,房屋樣本x1和樣本x2之間的預測是相互獨立的,它

廣義分佈(GGD)

廣義高斯分佈(GGD)-Generalized Gaussian Distribution  廣義高斯分佈及其在影象去噪的應用_百度文庫 https://wenku.baidu.com/view/2b86384c852458fb770b5651.html     &n

到現在才理解分佈的均值與方差為什麼是0和1

問題的來源,如圖所示:為什麼標準正態分佈的期望值0,方差為1呢,如果是針對x變數,期望值為0可以理解,那麼方差為1怎麼理解呢,顯然不可能為1,如果針對y變數,顯然所有值都大於0,怎麼會期望值會大於0呢: 先看數學期望的定義: 期望值本身是對所有值進行加權的過程,是針對一個變數存在的;每

概率分佈---分佈

條件高斯分佈 邊緣高斯分佈 高斯變數的貝葉斯定理 高斯分佈的最大似然估計 順序估計 高斯分佈的貝葉斯推斷 學生t

多元分佈

多元高斯分佈 1.協方差矩陣 協方差衡量的是變數X與Y之間是否存線上性關係,cov(X,Y)>0說明X與Y的變化趨勢是一致的,X增長的時候Y也隨著增長。如果X,Y互相獨立的話,cov(X,Y)=0. cov(X,X)=D(X),變數X與自身的協方差就是方差,cov(X,Y)=cov

多元分佈的KL散度

kl散度意義: In the context of machine learning, is often called the information gain achieved if Q is used instead of P. This reflects