Opencv4android, преобразующий белый пиксельный кластер в центерет из одной линии точек - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь использовать камеру телефона Android в качестве 3dscanner, с помощью лазерного кросса.Я использую OpenCV, чтобы отфильтровать все другие цвета, кроме лазеров.который оставляет меня с толстым белым лазерным крестом.Теперь я хочу подсчитать все белые пиксели в каждой строке и уменьшить их до толщины 1 пиксель и показывать только каждый 5-й пиксель в этой строке.У меня есть код из обработки (Java), который делает именно это, но я не смог преобразовать его (я довольно плохо знаком с Java).Есть ли способ конвертировать это в Android / OpenCV?или любой другой способ достичь моей цели?

Mat = imgCanny;

//find white pixels in rows

`**for** (**int** i =0; i< imgCanny.width()*imgCanny.height()/2; i++){

**int** k = 0 ;`

`**while** (brightness(imgCanny.pixels[i])== 255 && i < (imgCanny.width()*imgCanny.height()/2)-1){

k++;        
i++;
}`

//make center of pixels white
`**if**(k>0){
    imgCanny.pixels[i-k/2] = color(255)&&(i/imgCanny.width())%5 == 0;

//print coordinates to textfile
    output.print(",");
    output.print(i%imgCanny.width());
    output.print(",");
    output.print(i/imgCanny.width());
}`
...