Я использую Imgcodecs.imread
для загрузки изображения из галереи телефона, чтобы выполнить сегментацию этого изображения. Однако при создании растрового изображения для отображения его на экране я получал error: IllegalArgumentException: width and height must be> 0.
. Вскоре я понял, что Imgcodecs.imread
не открывает изображение правильно, потому что я использовал журнал для просмотра выходных данных переменной. Как показано ниже.
// Load the image
val srcOriginal = Imgcodecs.imread(currentPhotoPath)
val src: Mat = srcOriginal.clone()
Log.i("teste", src.toString())
Log.i("teste", srcOriginal.toString())
Log.i("teste", src.rows().toString()+"\n"+ src.cols())
// Create a blank image of zeros (same dimension as img)
// It should be grayscale (1 color channel)
val markers = Mat.zeros(srcOriginal.rows(), srcOriginal.cols(), CvType.CV_32F)
// This step is manual. The goal is to find the points
// which create the result we want. I suggest using a
// tool to get the pixel coordinates.
// Dictate the area of interest
for(x in my_canvas.pointsToDrawX.indices) {
markers.put(
my_canvas.pointsToDrawX.get(x).toInt(),
my_canvas.pointsToDrawY.get(x).toInt(),
255.0
)
}
val src1 = srcOriginal.clone()
val bmpOut = Bitmap.createBitmap(src1.cols(), src1.rows(), Bitmap.Config.RGB_565)
//Create Bitmap
Utils.matToBitmap(src1, bmpOut)
image.setImageBitmap(bmpOut)
Выходной журнал:
Output error:
введите описание изображения здесь
почему Imgcodecs.imread не открывает изображение правильно?