fun rorationImage(data:ByteArray,cropWidth:Int):ByteArray{
// 创建一个空的 Mat 对象
val src = Mat(camera_h,camera_w,CvType.CV_8UC1)
// 将帧数据转换为 Mat 对象
src.put(0, 0, data)
// 创建新的 Mat 对象用于存储裁剪后的图像
val croppedMat = Mat(src, Rect(cropWidth/2, 0, camera_w-cropWidth, camera_h))
// 调整新的 Mat 对象的尺寸
// val resizedMat = Mat()
// val newSize = Size(camera_h.toDouble(), camera_h.toDouble())
// Imgproc.resize(croppedMat, resizedMat, newSize)
src.release()
// croppedMat.release()
// 将裁剪并调整尺寸后的 Mat 对象转换回字节数组形式的帧数据
// val croppedFrameData = ByteArray((resizedMat.total() * resizedMat.channels()).toInt())
// resizedMat.get(0, 0, croppedFrameData)
// resizedMat.release()
// 定义旋转角度和旋转中心
val angle = 90.0
val center = Point(((camera_w-cropWidth) / 2).toDouble(), (camera_h / 2).toDouble())
// 计算旋转矩阵
val rotationMatrix: Mat = Imgproc.getRotationMatrix2D(center, angle, 1.0)
// 执行仿射变换,实现图像旋转
val rotatedMat = Mat(camera_w-cropWidth, camera_h, CvType.CV_8UC1);
Imgproc.warpAffine(croppedMat, rotatedMat, rotationMatrix, Size(camera_h.toDouble(), ( camera_w-cropWidth).toDouble()))
// resizedMat.release()
// 将旋转后的 Mat 对象转换回字节数组
val rotatedData = ByteArray(rotatedMat.rows() * rotatedMat.cols())
rotatedMat[0, 0, rotatedData]
rotatedMat.release()
return rotatedData
}