簡體   English   中英

使用帶有Java的openCV從圖像中提取Android圓形區域

[英]Android-circular area extraction from an image using openCV with java

我正在嘗試在圖像中分割圓形區域並嘗試讀取圓形區域中像素的RGB值。有人可以向我介紹一個教程嗎,在Java中使用openCV在Android中完成此操作嗎?

我建議以下內容:

假設您知道圓形區域的中心(x,y)和半徑r,請找到限制圓形的正方形的子矩陣,即。 它將具有點tl =(xr,yr),br =(x + r,y + r):

Rect roi = new Rect(new Point(x-r, y-r,), new Point(x+r, y+r));
Mat boundingSquare = originalImage.submat(roi);

然后,您可以遍歷該子墊中的每個點,並測試它們是否在圓中。 因此,對於子墊中的每個點(a,b)(現在記住該點將具有左上點(0,0)和右下角(2r,2r)),請檢查(ar) (ar)+(br) (br )<= r * r。

一種稍有不同的方法(並假設您的點值為正)是在圓中創建值為1的掩蔽Mat,在外側創建為-1的掩蔽Mat(使用與上述相同的技術); 然后,您可以使用Core.multiply將mask與您的boundingSquare(或更精確的克隆)相乘。 boundingSquare將在圓內具有正值,在圓外具有負值。 以這種方式應用遮罩比掃描單個像素值要快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM