QAI*_*AIS 2 android opencv android-camera
在Android中捕获图像并使用opencv处理它们的最佳方法是什么?我应该使用表面视图在这里或我应该使用opencv相机中的opencv相机吗?以及如何加载捕获的图像并将其转换为Mat?提前致谢
private PictureCallback mPicture = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
if (pictureFile == null) {
Log.d("E",
"Error creating media file, check storage permissions ");
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
//processImage();
} catch (FileNotFoundException e) {
Log.d("E", "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d("E", "Error accessing file: " + e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
在OpenCV示例中,有一个CameraBridgeViewBase,可帮助捕获,处理和显示相机预览的结果(连续的低分辨率图像流).
如果要处理具有更高分辨率的单个捕获,则应使用类似于onPictureTaken()的内容.然后,您可以使用Highgui.imread()读取图像并进行处理.
您还可以通过使用BitmapFactory.decodeByteArray()从数据数组创建位图,然后使用Utils.bitmapToMat()将位图转换为Mat,来避免写入和读取文件
| 归档时间: |
|
| 查看次数: |
5431 次 |
| 最近记录: |