Java结合OpenCV读取图片并遍历像素值[通俗易懂]

Java结合OpenCV读取图片并遍历像素值[通俗易懂]1项目结构图1图像读取及遍历项目结构2图像读取及遍历codepackagecom.opencv;importjava.awt.Dimension;importjava.awt.image.BufferedImage;importjava.util.ArrayList;importjava.util.List;importjava.util.Vector;…

大家好,又见面了,我是你们的朋友全栈君。

1 项目结构

在这里插入图片描述


图1 图像读取及遍历项目结构

2 图像读取及遍历

  • code
package com.opencv;

import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.videoio.VideoCapture;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
public class VideoDemo { 
   

    public static void main(String[] args) { 
   
    	// 列表
        ArrayList array = new ArrayList();
        System.out.println("List: "+array);
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat image = new Mat();
        // 图像读取
        image = Imgcodecs.imread("/home/xdq/xinPrj/java/opencvTwo/images/DVI_dis.png");
        // 图像行:高度height
        int img_rows = image.rows();
        // 图像列:宽度width
        int img_colums = image.cols();
        // 图像通道:维度dims/channels
        int img_channels = image.channels();
        System.out.println("image mat: " + image+"\n");
        System.out.println("image rows: "+image.rows()+"\n");
        System.out.println("image column: "+image.cols()+"\n");
        System.out.println("image channels: "+image.channels()+"\n");
        System.out.println("image value: "+image.get(0, 0).length+"\n");
		// 图像像素遍历,按通道输出
        for(int i=0;i<img_channels;i++) { 
   
            for(int j=0;j<img_rows;j++){ 
   
                for(int k=0; k<img_colums;k++){ 
   
                    array.add(image.get(j,k)[i]);
                }
            }
            System.out.println("image value: "+array+"\n");
            // 列表清空
            array.clear();
        }
    }
}
  • Result
    在这里插入图片描述


图2 遍历像素

传送门:https://github.com/xindaqi/java.git

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137371.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 微软E5账号OneDrive无法扩容解决方案(亲测有效)「建议收藏」

    微软E5账号OneDrive无法扩容解决方案(亲测有效)「建议收藏」E5账号OneDrive默认存储空间为1T,可通过以下方式进行扩容12如按照以上方法扩容失败,则本篇文章可能对您有帮助,请继续阅读1.下载安装SharePointOnlineManagementShell 官方下载地址: https://www.microsoft.com/zh-CN/download/details.aspx?id=355882.在SharePointOnlineManagementShell中输入以下命令1.Conn..

  • busybox如何安装(如何安装busybox)

    step1.adbpushc:/busybox/mnt/sdcard/step2.用”re文件管理器”把已经拷到sdcard的busybox移动到/system/xbin目录step3.依次执行下面adb命令adbshellsumount-oremount,rw-tyaffs2/dev/block/mtdblock3/systemcd/syste

  • java重载与重写的区别_java重载和重写的区别和联系

    java重载与重写的区别_java重载和重写的区别和联系1.重写(Override)从字面上看,重写就是重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下,对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。2.重载(Overload)在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同甚至是参数顺序不同)则视.

  • 长短期记忆神经网络(LSTM)介绍以及简单应用分析「建议收藏」

    长短期记忆神经网络(LSTM)介绍以及简单应用分析「建议收藏」本文分为四个部分,第一部分简要介绍LSTM的应用现状;第二部分介绍LSTM的发展历史,并引出了受众多学者关注的LSTM变体——门控递归单元(GRU);第三部分介绍LSTM的基本结构,由基本循环神经网络

  • GOD IS A GIRL_is a girl

    GOD IS A GIRL_is a girl

        回忆起我发现真理
      allovertheworld,sheisknownasagirl
      犹如全世界所知她都是唯一的女孩
      tothosewhoarefree,themindshallbekey
      放开你的思想理解就是真理
      forgottenasthepast,causehistorywilllast
      犹如遗忘的过去历史将会延续……

  • 阿里巴巴主流数据库连接池Druid入门

    阿里巴巴主流数据库连接池Druid入门一.数据库连接池的必要性(一).传统数据库连接模式的的步骤1.在主程序中创建连接2.进行sql操作3.关闭数据库连接(二).传统数据库连接模式存在的问题1.浪费时间:每次连接时都要验证登录和将conn加载到内存,2.不能大规模的访问数据库:当数据库访问人数过多时,占用大量系统资源,会导致服务器崩溃3.存在内存泄漏问题:每次连接都需要断开连接,如果不断开,程序运行结束,会有创建的连接对象存在内存中一直无法关闭,就会导致java内存…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号