首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Highgui.imread读取旋转图像

Highgui.imread读取旋转图像
EN

Stack Overflow用户
提问于 2012-12-19 18:25:34
回答 2查看 1K关注 0票数 3

我正在使用相机在我的手机上捕捉图像,这部手机使用的是Android 4.03和opencv for android 2.4.3

在我的应用程序中,我使用Highgui.imread从磁盘读取图像

但问题是,函数总是在旋转图像,而不是实际保存的图像!

代码语言:javascript
复制
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Mat img = Highgui.imread(file.getAbsolutePath());
            if(img!=null)
                n.detectDocument(img.getNativeObjAddr());

在原生端

代码语言:javascript
复制
jbyteArray JNICALL Java_com_example_superemr_NSuperEMR_detectDocument(JNIEnv *env, jobject object, jlong addr)
{
    Mat* image = (Mat*) addr;
    imwrite("/mnt/sdcard/work/hala.jpg",*image);
    return NULL;
}

如何在正确的位置读取图像?

EN

回答 2

Stack Overflow用户

发布于 2014-08-31 06:13:13

imread解码JPG元数据的方式与您使用的图像查看器不同。

手机照片有“方向”EXIF设置。这在使用photo1photo2的Chrome on tinypic中可以看到。

不确定如何在C++中正确读取和处理EXIF标志,但在python中有类似的question

我还没有尝试过,但你可以考虑用另一个库来读取图像,保存为png,然后读取到opencv中。

PS:我看到这是一个老帖子,但当我遇到同样的问题时,这是在我的搜索结果中出现的,所以也许它会对其他人有帮助。

票数 1
EN

Stack Overflow用户

发布于 2016-03-08 13:30:54

您可以使用imagemagick首先自动调整图像方向。这会将方向元数据更改为1(或左上角),并更改图像的方向(旋转和镜像,视需要而定)。

正在检查方向元数据:标识-format '%exif: orientation‘

自动定向图像: convert -auto-orient

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13950210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档