1
A
回答
4
恐怕你需要逐一計算像素。
$gd = // Create image of same size, copy original image into $gd
// Make grayscale
imageFilter($gd, IMG_FILTER_GRAYSCALE);
$pre = array_fill(0, 256, 0);
for ($y = 0; $y < ImageSY($gd); $y++)
{
for ($x = 0; $x < ImageSX($gd); $x++)
{
$luma = (imageColorAt($x, $y) & 0xFF); // Grayscale, so R=G=B=luma
$pre[$luma]++;
}
}
// Then you need to build the cumulative histogram:
$max = $pre[0];
$hist[0] = $pre[0];
for ($i = 1; $i < 256; $i++)
{
$hist[$i] = $hist[$i-1]+$pre[$i];
if ($max < $pre[$i])
$max = $pre[$i];
}
// Now scale to 100%
for ($i = 0; $i < 256; $i++)
{
$hist[$i] = ($hist[$i]*100.0)/((float)$hist[255]);
if ($hist[$i] >= 5)
if ((0 == $i) || ($hist[$i-1] < 5))
print "Fifth percentile ends at index $i (not included)\n";
if ($hist[$i] >= 95)
if ($hist[$i-1] < 95)
print "Ninety-fifth percentile begins at index $i (included)\n";
}
// Create graphics, just to check.
// Frequency is red, cumulative histogram is green
$ck = ImageCreateTrueColor(255, 100);
$w = ImageColorAllocate($ck, 255, 255, 255);
$r = ImageColorAllocate($ck, 255, 0, 0);
$g = ImageColorAllocate($ck, 0, 255, 0);
ImageFilledRectangle($ck, 0, 0, 255, 100, $w);
for ($i = 0; $i < 256; $i++)
{
ImageLine($ck, $i, 100-$hist[$i], $i, 100, $g);
ImageLine($ck, $i, 100.0-100.0*((float)$pre[$i]/$max), $i, 100, $r);
}
ImagePNG($ck, 'histograms.png');
0
獲取所有值的排序列表(第5百分位升序,第95位降序)。然後遍歷所有值,直到從開始到該索引> =整個列表長度的5%的子列表長度。當前索引值是您正在查找的百分位數。甚至不涉及直方圖。
相關問題
- 1. 如何分別獲得第95和第5百分位數?
- 2. 如何計算Excel 2010中的第95百分位
- 3. 任何方式獲得第95百分位和總和在同一個查詢?
- 4. SQL Server 2008中的中位數和第95百分位數? - NHS報告要求
- 5. 在matlab中查找第15和第85百分位
- 6. 計算第95百分位值,但不一定從數據集
- 7. 如何計算R或Excel中分組變量的第95百分位值
- 8. 計算實際之間的第95百分位數差和在SQL
- 9. 在R中的折線圖上添加第1 /第3四分位數和第90百分位數
- 10. 按百分位數繪製直方圖
- 11. 刪除比數據幀第95百分更大的數據
- 12. 如何用SQLite查找第N百分位數?
- 13. 如何用R總結得到第n百分位數?
- 14. 如何在單個Teradata查詢中輸出不同的第25,第50和第75百分位數?
- 15. ggplot2 boxplot與幾何平均數,以及第90和第10百分位數
- 16. 滾動95個百分點和每月的中位數
- 17. 如何近似未知數量的第x百分位數
- 18. 在數據框中計算第90個百分位數的列
- 19. 查找第一個和第三個四分位數
- 20. 查找來自第5個百分點的平均值
- 21. 如何在python中找到列表中的第n位數字
- 22. 越來越計算第90百分位
- 23. 來自離散值的直方圖數據的百分位數
- 24. 如何在無限循環中定位第5和第9個元素?
- 25. 如何四捨五入小數位5,排在第五位
- 26. 來自直方圖數據的百分位
- 27. 如何操作數組中的每個第2,第3和第5個元素?
- 28. 毫秒,直到下一個第5秒
- 29. 如何計算textbox3中textbox1和textbox2的百分比直到兩位小數?
- 30. 同一列中找到第一行的百分比
@Iserni wow..thank了很多,但什麼叫「不包括」爲弗斯個百分點意味着什麼?這個價值不是第5個百分點的價值嗎? – ATZ
我的意思是,如果算法告訴你第五個百分點在索引7處沒有包括,這意味着第五個百分點由索引0,1,2,3,4,5和6組成。這是近似的,因爲如果你刪掉了你實際切出的0-6的指數,比如說總數的4.8%,如果你切出0-7,則切出5.2%左右(取決於圖像) – LSerni