Car*_*ego 6 java android opencv kotlin
我正在为 android studio 使用 opencv。我对此几乎没有经验,所以我请求帮助从图像中删除背景并只留下感兴趣的区域。我正在处理伤口图像,我只想在应用程序屏幕上留下伤口区域,如下图所示。
我正在使用 kotlin 并且我设法执行图像的分水岭,只是从图像的背景中遗漏了伤口区域,有人可以帮助我吗?
private fun threashold(){
val width = imgBmpDefault?.getWidth()!!
val height = imgBmpDefault?.getHeight()!!
val rgba = Mat()
val gray_mat = Mat()
val threeChannel = Mat()
Utils.bitmapToMat(imgBmpDefault, gray_mat)
Imgproc.cvtColor(gray_mat, rgba, Imgproc.COLOR_RGBA2RGB)
Imgproc.cvtColor(rgba, threeChannel, Imgproc.COLOR_RGB2GRAY)
Imgproc.threshold(threeChannel, threeChannel, 100.0, 255.0, Imgproc.THRESH_OTSU)
val fg = Mat(rgba.size(), CvType.CV_8U)
Imgproc.erode(threeChannel, fg, Mat(), Point(-1.0, -1.0), 2)
val bg = Mat(rgba.size(), CvType.CV_8U)
Imgproc.dilate(threeChannel, bg, Mat(), Point(-1.0, -1.0), 3)
Imgproc.threshold(bg, bg, 1.0, 128.0, Imgproc.THRESH_BINARY_INV)
val markers = Mat(rgba.size(), CvType.CV_8U, Scalar(0.0))
Core.add(fg, bg, markers)
val marker_tempo = Mat()
markers.convertTo(marker_tempo, CvType.CV_32S)
Imgproc.watershed(rgba, marker_tempo)
marker_tempo.convertTo(markers, CvType.CV_8U)
imgBmpExit = Bitmap.createBitmap(width, height, Config.RGB_565)
Imgproc.applyColorMap(markers, markers, 4)
Utils.matToBitmap(markers, imgBmpExit)
imagem.setImageBitmap(imgBmpExit)
}
Run Code Online (Sandbox Code Playgroud)
使用其他伤口图像退出:
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |