开发者社区 > 视觉智能 > 文字识别 > 正文

文字识别ocr中我上传的图片像素比跟接口返回的原图像素比不一致,做了一次旋转,这个是为什么啊?

文字识别ocr中我遇到一个问题 requestId 376B1190-6DA1-5B0D-9E80-3328A68E3FB8 ; 我上传的图片像素比跟接口返回的原图像素比不一致,做了一次旋转,这个是为什么啊?这是我上传的文件的宽高, 这是接口响应的503b7ee1f63feb49f3b3ed0387d7c77f.png81aa83b7f26a7dae75035d320552e644.png我用java.awt.image.BufferedImage来读这个文件显示的高度是4000[流泪] 我有点不太会处理了,我要怎么获取到跟详细信息一致的图,来进行切图操作

展开
收起
小小鹿鹿鹿 2023-11-20 21:41:51 60 0
3 条回答
写回答
取消 提交回答
  • 这个问题可能是由于上传的图片在旋转后,宽度和高度发生了变化。为了解决这个问题,你可以尝试以下方法:

    1. 使用Java的javax.imageio.ImageIO类读取图片文件,然后获取图片的宽度和高度。
    2. 根据接口返回的详细信息,计算旋转角度。
    3. 使用java.awt.Graphics2D类创建一个旋转后的图像。
    4. 将旋转后的图像保存到临时文件中。
    5. 使用新的临时文件进行切图操作。

    以下是一个简单的示例代码:

    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.geom.AffineTransform;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    public class ImageRotation {
        public static void main(String[] args) throws IOException {
            // 读取图片文件
            BufferedImage image = ImageIO.read(new File("input.png"));
    
            // 获取图片的宽度和高度
            int width = image.getWidth();
            int height = image.getHeight();
    
            // 计算旋转角度(这里需要根据接口返回的详细信息进行计算)
            double rotationAngle = 0; // 示例值,实际值可能不同
    
            // 创建旋转后的图像
            BufferedImage rotatedImage = new BufferedImage(height, width, image.getType());
            Graphics2D g2d = rotatedImage.createGraphics();
            AffineTransform at = new AffineTransform();
            at.rotate(Math.toRadians(rotationAngle), height / 2, width / 2);
            g2d.setTransform(at);
            g2d.drawImage(image, 0, 0, null);
            g2d.dispose();
    
            // 保存旋转后的图像到临时文件
            ImageIO.write(rotatedImage, "png", new File("rotated_output.png"));
    
            // 使用新的临时文件进行切图操作(这里需要根据具体需求进行切图操作)
        }
    }
    

    请注意,这个示例代码仅用于演示目的,你需要根据实际情况修改代码以满足你的需求。

    2023-11-29 14:57:39
    赞同 展开评论 打赏
  • 可能是Exif 信息导致的 可以参考下这个:
    https://blog.csdn.net/LituXay/article/details/131510826
    。此回答来自钉群【官方】阿里云OCR公共云客户交流群。

    2023-11-22 08:19:03
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题可能是由于上传的图片与OCR服务接口返回的图片之间存在像素比例不一致导致的。通常情况下,OCR服务接口会返回图片的原始分辨率,而不会改变图片的比例。这意味着当您上传一张低分辨率或宽高比不同于原图片的图片时,识别的结果可能会出现差异。
    对于这种情况,可以尝试将上传的图片调整为与原图片相同的像素比例后再上传。此外,可以尝试在图像预处理阶段采用图像缩放方法来改善这个问题。在缩放过程中,保持原始图片的比例不变,只改变图像的大小,这样可以使识别的结果更加准确。

    2023-11-21 21:51:23
    赞同 展开评论 打赏

文字识别技术可以灵活应用于证件文字识别、发票文字识别、文档识别与整理等行业场景,满足认证、鉴权、票据流转审核等业务需求。

相关电子书

更多
阿里云智能-印刷文字识别OCR-产品介绍 立即下载
阿里巴巴读光OCR 立即下载
印刷文字识别算法设计与在线服务 立即下载