Open CV 图像处理基础:(三)使用 Open CV 在 Java 中进行基本的图片缩放操作

news/2024/7/21 7:42:19 标签: 图像处理, 人工智能, opencv

使用 Open CV 在 Java 中进行基本的图片缩放操作

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class ImageResizer {
    static {
        // 加载 OpenCV 的本地库,这一步是必须的
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) {
        // 读取图片
        Mat src = Imgcodecs.imread("path/to/image.jpg");

        // 检查图片是否正确读取
        if (src.empty()) {
            System.out.println("图片读取错误");
            return;
        }

        // 创建目标图片的大小
        Mat dst = new Mat();
        Size size = new Size(src.width() / 2, src.height() / 2); // 假设我们想要将图片缩小到原来的一半

        // 进行缩放
        Imgproc.resize(src, dst, size, 0, 0, Imgproc.INTER_AREA);

        // 保存缩放后的图片
        Imgcodecs.imwrite("path/to/scaled_image.jpg", dst);
    }
}

System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 语句加载了 OpenCV 的本地库。
Imgcodecs.imread 方法用于读取原始图片文件。
Imgproc.resize 方法用于缩放图片。Size 对象定义了缩放后图片的尺寸,Imgproc.INTER_AREA 是执行缩放时使用的插值类型,通常用于缩小图片。
Imgcodecs.imwrite 方法用于保存处理后的图片到文件系统。


http://www.niftyadmin.cn/n/5306667.html

相关文章

macOS通过外置驱动器备份数据

通过外置驱动器备份数据(谨慎操作) 1.将外置驱动器连接到您的 Mac。驱动器容量应等于或大于您当前的启动磁盘。驱动器还应该是您可以抹掉的。 2.使用 macOS 恢复功能 抹掉外置驱动器,然后将 macOS 安装 到外置驱动器上。确保您选择的外置驱动…

【基础篇】十三、强软弱虚引用、终结器引用

文章目录 0、相关🖊1、强引用2、软引用3、弱引用4、虚引用5、终结引用 关于对象能否被回收: 计数器可达性分析 还可以根据引用的类型,不同的引用类型,对应对象的不同GC回收规则。 0、相关🖊 📕【强软弱虚…

Ubuntun使用ISO镜像中的软件包作为本地镜像源

首先下载镜像: https://releases.ubuntu.com/jammy/ubuntu-22.04.3-desktop-amd64.iso 新建本地目录,挂载ISO文件到本地目录 sudo mkdir /media/cdrom sudo mount /mnt/e/iso/ubuntu-22.04.3-desktop-amd64.iso /media/cdrom # 备份镜像源 sudo mv…

LeetCode每日一题 | 1944. 队列中可以看到的人数

文章目录 队列中可以看到的人数题目描述问题分析程序代码(Golang 版本) 队列中可以看到的人数 题目描述 原题链接 有 n 个人排成一个队列,从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights ,每个整数 互不相同&#xff…

vue简单实现滚动条

背景:产品提了一个需求在一个详情页,一个form表单元素太多了,需要滚动到最下面才能点击提交按钮,很不方便。他的方案是,加一个滚动条,这样可以直接拉到最下面。 优化:1、支持滚动条,…

SpringBoot内嵌的Tomcat启动过程以及请求

1.springboot内嵌的tomcat的pom坐标 启动后可以看到tomcat版本为9.0.46 2.springboot 内嵌tomcat启动流程 点击进入SpringApplication.run()方法里面 看这次tomcat启动相关的核心代码refreshContext(context);刷新上下文方法 public ConfigurableApplicationContext run(Stri…

Qt 6之四:基础概念讲解

Qt 6之四:基础概念讲解 Qt是一种跨平台的C应用程序开发框架,它提供了一套丰富的工具和库,可以帮助开发者快速构建跨平台的应用程序,用于开发图形用户界面(GUI)和非GUI应用程序。 Qt 6之一:简介…

Grafana相关问题及答案(2024)

1、Grafana 是什么,它用于什么目的? Grafana 是一个高度灵活且富有功能的数据可视化和监控平台,旨在为技术专业人员提供强大的方式来显示和分析他们的数据。下面将详细介绍 Grafana 的关键特点和它的使用场景。 关键特点 1. 数据源的多样性…