【Java版】OpenCV图片灰度化处理

一、介绍

JavaCV是一个基于OpenCV的Java接口,使得Java开发者能够更方便地使用OpenCV库。灰度图是一种只包含亮度信息的图像,每个像素的值表示其亮度。相比于 RGB 彩色图像,灰度图不仅使用了较少的存储空间,而且在某些图像处理时,处理速度也更加迅速。因此,灰度图在图像分析、模式识别等领域有着广泛的应用。

二、JavaCV环境配置

在使用JavaCV之前,需要先配置开发环境。

可以通过Maven引入JavaCV的依赖,或者手动下载Jar包。 

以下是Maven依赖添加示例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>3d</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv-platform</artifactId>
            <version>1.5.9</version>
        </dependency>

    </dependencies>

</project>

三、简单例子

下面是一个简单的例子,展示如何读取一个图像文件,将其转换为灰度图,并保存为新文件。

package com.test;

import org.bytedeco.opencv.global.opencv_imgcodecs;
import org.bytedeco.opencv.global.opencv_imgproc;
import org.bytedeco.opencv.opencv_core.Mat;

/**
 * 读取图像并转换为灰度图的例子
 *
 * # 转为灰度图像
 * gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 *
 * # BGR 到 HSV
 * hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
 *
 * # BGR 到 LAB
 * lab_image = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)
 *
 * */
public class ImageColor {
    public static void main(String[] args) {
        String imagePath = "path/to/your/image.jpg"; // 替换为你的图片路径

        Mat image = opencv_imgcodecs.imread("/Users/csguo007/Desktop/images.jpeg");

        if (image.empty()) {
            System.out.println("图像加载失败!");
            return;
        }
        // 创建灰度图像
        Mat grayImage = new org.bytedeco.opencv.opencv_core.Mat();

        opencv_imgproc.cvtColor(image, grayImage, opencv_imgproc.COLOR_BGR2GRAY);

        // 保存灰度图像
        opencv_imgcodecs.imwrite("/Users/csguo007/Desktop/gray_image.jpg", grayImage);

        System.out.println("图像处理完成!");
    }
}

四、学习资源 

  更多学习资料,欢迎加入我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常生果

喜欢我,请支持我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值