如何從圖像積分中找到平均值,標準偏差和梯度?給定的圖像,例如,如下所示:計算圖像積分
如上圖所示,找到了突出部分的總和,sum = C+A-B-D
。
所以我們有sum = 22
。
我怎麼能在下進行,以便找到:
- 平均
- 標準偏差
- 梯度
如何從圖像積分中找到平均值,標準偏差和梯度?給定的圖像,例如,如下所示:計算圖像積分
如上圖所示,找到了突出部分的總和,sum = C+A-B-D
。
所以我們有sum = 22
。
我怎麼能在下進行,以便找到:
C+A-B-D
爲您提供了灰度等級的總和由界的區域A,B,C,D,所以,爲了得到平均值,您只需要將區域劃分爲區域:
mean = (C+A-B-D)/4
要獲得開發,你必須計算平方米範圍表的總和(使用cv::integral
你可以傳遞一個額外的參數,以獲得平方的總和)。引用wikipedia時,標準差等於(平均值減去平均值的平方)的平方根。因此,假設A「 B」,C「 d」在你廣場面積表中的值:
dev = sqrt((C'+A'-B'-D')/4 - (mean*mean))
因此,在計算平均值,並使用積分圖像dev爲非常快速使用積分圖像,特別是如果你想要在隨機位置和圖像塊的隨機大小上計算這些數量。
關於漸變,它更復雜。你確定你不想使用sobel
運算符嗎?
如果C + A-B-C是區域中的所有灰度級的總和,則平均值不
mean = C+A-B-D/4
但
mean = C+A-B-D/K
其中K是在該區域graylevels的數量。
此外,
dev = sqrt(C'+A'-B'-D'/4 - (mean*mean))
不是標準偏差,因爲
dev = sqrt((1/N)*sum_N (x_i - u)^2)
這裏的公式等同於
dev = sqrt((1/N)*sum_N ((x_i)^2) - u^2)
這些方程是不等價的。
jmch沒有說的是,如果sqrt(C'+A'-B'-D'/K - (mean*mean))
不是你如何計算積分圖像的標準偏差,那麼你怎麼做呢?
首先,讓我切換到Python/numpy的代碼,所以我們得到了一點符號一致性和表達式更容易檢查。給定樣本陣列X,說:
X = array([random() * 10.0 for i in range(0, 9)])
的X
的uncorrected sample standard deviation可以作爲被定義爲:
std = (sum((X - mean(X)) ** 2)/len(X)) ** 0.5 # 1
運用binomial theorem到(X - mean(X)) ** 2
我們得到:
std = (sum(X ** 2 - X * 2 * mean(X) + mean(X) ** 2)/len(X)) ** 0.5 # 2
鑑於identities的總和操作,我們可以做:
std = ((sum(X ** 2) - 2 * mean(X) * sum(X) + len(X) * mean(X) ** 2)/len(X)) ** 0.5 # 3
如果我們S = sum(X)
,S2 = sum(X ** 2)
,M = mean(X)
和N = len(X)
我們得到:
std = ((S2 - 2 * M * S + N * M ** 2)/N) ** 0.5 # 4
現在對於圖像I
和兩個積分圖像P
和P2
從I
(其中P2
是積分圖像的平方像素計算值),我們知道,給定四個邊緣座標A = (i0, j0)
,B = (i0, j1)
,C = (i1, j0)
和D = (i1, j1)
,值爲S
,S2
,M
和N
可以計算作爲範圍I[A:D]
:
S = P[A] + P[D] - P[B] - P[C]
S2 = P2[A] + P2[D] - P2[B] - P2[C]
N = (i1 - i0) * (j1 - j0)
M = S/N
然後可以上述(4)得到的範圍內I[A:D]
的標準偏差應用到方程。
編輯:它不是完全必要的,但考慮到M = S/N
我們可以將以下替換和簡化式(4):
std = ((S2 - 2 * M * S + N * M ** 2)/N) ** 0.5
std = ((S2 - 2 * (S/N) * S + N * (S/N) ** 2)/N) ** 0.5
std = ((S2 - 2 * ((S ** 2)/N) + (S ** 2/N))/N) ** 0.5
std = ((S2 - ((S ** 2)/N))/N) ** 0.5
std = (S2/N - (S/N) ** 2) ** 0.5 # 5
這是相當接近方程式雷米了,其實。
我完全不明白你的問題。你能改善它嗎? – ArtemStorozhuk
您想查找某個圖像部分(ROI)的_mean_,_std dev_和_gradient_? – ArtemStorozhuk
我想找到所有圖像的平均值,標準偏差和梯度。 – Mzk