我感興趣的是找到整個二進制圖像的座標(X,Y),而不是每個組件的CoM。 我怎樣纔能有效地做到這一點? 我想使用regionprops,但找不到正確的方法來做到這一點。如何找到我的整個二進制圖像的質量中心?
回答
可以定義所有區域作爲一個單一的區域供regionprops
props = regionprops(double(BW), 'Centroid');
據BW
regionprops
數據類型決定其是否應標記每個連接部件作爲不同的區域或治療所有非零作爲單個區域有幾個組件。
或者,您也可以自己計算的重心
[y x] = find(BW);
cent = [mean(x) mean(y)];
只是遍歷所有像素計算它們的X和Y的平均座標
void centerOfMass (int[][] image, int imageWidth, int imageHeight)
{
int SumX = 0;
int SumY = 0;
int num = 0;
for (int i=0; i<imageWidth; i++)
{
for (int j=0; j<imageHeight; j++)
{
if (image[i][j] == WHITE)
{
SumX = SumX + i;
SumY = SumY + j;
num = num+1;
}
}
}
SumX = SumX/num;
SumY = SumY/num;
// The coordinate (SumX,SumY) is the center of the image mass
}
擴展這一方法爲灰色範圍爲[0..255]的縮放圖像:代替
if (image[i][j] == WHITE)
{
SumX = SumX + i;
SumY = SumY + j;
num = num+1;
}
使用以下計算
SumX = SumX + i*image[i][j];
SumY = SumY + j*image[i][j];
num = num+image[i][j];
在這種情況下的值100的像素具有比具有值1暗像素,高100倍重量,以便暗像素貢獻相當小部分質量計算的中心。 請注意,在這種情況下,如果圖像很大,您可能會遇到32位整數溢出,因此在這種情況下,請使用long int
sumX,sumY變量而不是int
。
我知道。但是C/C++等於java,可以讀爲純英文。所以其他那些絆倒這個問題並使用不同編程語言的人仍然能夠理解數學解決方案。我相信'idow90'將能夠理解算法並將其轉換爲Matlab,這基本上是您的答案 – DanielHsH
即使顏色爲黑色,也不應該增加num嗎? 應用公式爲灰度圖像,我應該添加所有非黑色的顏色? – user3452075
num計算整個白色像素的數量。 SumX和SumY計算X和Y方向的積分。除以白色像素總數得出正確的答案。我爲您的要求擴展了灰度圖像的答案 – DanielHsH
- 1. 如何找到正在移動的二進制圖像中的點的中心
- 2. 如何通過imagemagick二進制轉換提高圖像質量?
- 3. 如何告訴BitmapFactory.decodeStream給我一個完整的質量圖像?
- 4. 在matlab上,我如何繪製rgb圖像上的質心點?
- 5. 如何找到圖像的中心?
- 6. 找到一個圖像的輪廓質心
- 7. 如何在二進制圖像中查找連接的組件?
- 8. 如何找到二進制圖像中線段的x,y的中間點?
- 9. Opencv中的圖像質量改進
- 10. VBScript - 圖像到二進制
- 11. 如何找到對象的質心?
- 12. 如何找到高質量的圖像PHP
- 13. 在二進制圖像中找到物體之間的距離
- 14. iOS圖像質量改進
- 15. 如何在Matlab中找到二進制圖像中的所有連接組件?
- 16. RGB圖像到二進制圖像
- 17. 灰度圖像中像素的質心
- 18. 調整圖像大小二進制
- 19. 如何在java swing中製作高質量的圖像圖標?
- 20. Qt調整圖像的最佳質量
- 21. 的PageSpeed調整圖像質量低
- 22. 調整後的圖像質量下降
- 23. 調整圖像的質量而不損失其質量
- 24. 控制圖像質量UIImageWriteToSavedPhotosAlbum
- 25. JavaCV:如何在二進制圖像中查找重要點
- 26. 如何在二進制3D圖像中查找集羣?
- 27. 當圖像較大時調整圖像的質量而不會丟失質量
- 28. 如何在iPhone中以高質量重新調整圖像質量
- 29. 二進制圖像
- 30. 在Magento中我如何保持圖像質量時,我重新調整圖像的像素較低
你有[centroid]的等式(http://en.wikipedia.org/wiki/Image_moments#Examples),對不對?你嘗試過編碼嗎? – beaker
計算邊界框然後計算質心? (因爲你不想要單個組件的質心)。 –
我有方程,並且計算邊界框不會考慮不同部件之間的孔和間隙。 – idow09