要在不重新分配的情况下编辑ImageView Mat,您可以使用以下代码示例:
import org.opencv.android.Utils;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.imgproc.Imgproc;
// 创建一个新的Mat对象
Mat imageMat = new Mat();
// 将图像转换为RGBA格式
Utils.bitmapToMat(bitmap, imageMat);
// 在图像上绘制一个红色矩形
Imgproc.rectangle(imageMat, new Point(100, 100), new Point(400, 400), new Scalar(255, 0, 0), 5);
// 将图像转换回Bitmap格式
Bitmap resultBitmap = Bitmap.createBitmap(imageMat.cols(), imageMat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(imageMat, resultBitmap);
// 将结果Bitmap设置到ImageView中
imageView.setImageBitmap(resultBitmap);
在这个示例中,我们首先将原始图像转换为OpenCV的Mat对象。然后,我们使用OpenCV的Imgproc库在Mat上绘制一个红色矩形。最后,我们将修改后的Mat对象转换回Bitmap格式,并将其设置到ImageView中显示。
请注意,这个示例假设您已经配置好了OpenCV库和Android Studio环境,并且已经包含了所需的OpenCV库文件。
上一篇:Android OpenCV边缘检测 - 不同背景下的角点和边缘检测挑战
下一篇:Android OpenGL - 使用在byte[]上包装的ByteBuffer造成glTexImage2D崩溃