Документ минимальный или не существует, я прочитал Официальные заявления OpenCV c и объявляют Mat в OpenCV java из stackoverflow
I Я провел некоторое исследование алгоритма обработки изображений с использованием Python ноутбука Jupyter, в данный момент я хочу проверить его в Android python.
Для части Python:
from numpy import asarray
dimg = cv2.imread('story/IMG_0371.PNG')
dimg_small = dimg[571:572, 401:402]
dimg_small_gamma = adjust_gamma(dimg_small)
data = asarray(dimg_small)
data_gamma = asarray(dimg_small_gamma)
# print data
array([[[52, 45, 44]]], dtype=uint8)
# print data_gamma
array([[[115, 107, 105]]], dtype=uint8)
Изображение dimg_small
должно выглядеть так:
Между тем, изображение dimg_small_gamma
должно выглядеть так:
Пока что я хочу создать изображение с теми же данными [52, 45, 44]
и 115, 107, 105
в Android, чтобы проверить мой алгоритм, либо Java, либо Kotlin было бы хорошо.
private fun genTestMat(): Mat { //upper one
val img = Mat( 3, 1, CvType.CV_8UC3)
img.put(3, 1,52.0, 45.0, 44.0)
return img
}
private fun genTestMat2(): Mat { //under one
val img = Mat( 3, 1, CvType.CV_8UC3)
img.put(3, 1,115.0, 107.0, 105.0)
return img
}
private fun opencvMatToBitmap(mat: Mat): Bitmap {
val bitmap: Bitmap = Bitmap.createBitmap(mat.width(), mat.height(), Bitmap.Config.ARGB_8888)
Utils.matToBitmap(mat, bitmap)
return bitmap
}
...
val testImg = opencvMatToBitmap(genTestMat())
val testImg2 = opencvMatToBitmap(genTestMat2())
image_under.setImageBitmap(testImg2)
image_upper.setImageBitmap(testImg)
С показом изображения на моем Android устройстве:
Мне было интересно, как сделать Android показать то же изображение, что и в Python записной книжке Jupyter?
Обновлено:
Пытался Mat.put
использовать массив следующим образом:
private fun genTestMat(): Mat { //upper one
val img = Mat( 3, 1, CvType.CV_8UC3)
val data = floatArrayOf(52f, 45f, 44f)
img.put(1,1, data)
return img
}
К сожалению, он упал :
Caused by: java.lang.UnsupportedOperationException: Mat data type is not compatible: 16
at org.opencv.core.Mat.put(Mat.java:801)
at com.example.cap2hist.MainActivity.genTestMat(MainActivity.kt:131)