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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • bzero_unsupported什么意思

    bzero_unsupported什么意思原型:externvoidbzero(void*s,intn)

    2022年10月13日
    4
  • 手把手教你完成图像分类实战——基于卷积神经网络的图像识别

    手把手教你完成图像分类实战——基于卷积神经网络的图像识别在很多的项目中,都会用到图像识别技术。我在智能电子秤的项目中,就使用了简单的图像识别算法来完成对果蔬的分类(三分类)。图像识别中,最常用的框架就是TensorFlow,我们今天就使用这个框架,手把手教学完成图像识别分类。完成一个图像识别模块主要包括四步:采集数据集搭建合适的模型调参、训练并测试完成接口到项目中关于环境的配置我在此处不多赘余描述,可以自行百度搜索,进行环境配置:python3.6+tensorflow+opencv。关于编译器,我在此处推荐spyder。使用起来非常方便,非常

    2022年6月12日
    60
  • 条件概率/全概率/贝叶斯公式

    条件概率/全概率/贝叶斯公式参考:https://www.cnblogs.com/ohshit/p/5629581.html1、条件概率公式设A,B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的条件概率(conditionalprobability)为:P(A|B)=P(AB)/P(B)分析:一般说到条件概率这一概念的时候,事…

    2022年7月15日
    15
  • log4cpp 详解及使用操作「建议收藏」

    log4cpp 详解及使用操作「建议收藏」Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、本地syslog和远程syslog服务器中。1、Log4cpp简介  Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。…

    2022年7月13日
    15
  • 回顾JPS命令_实时打印日志命令

    回顾JPS命令_实时打印日志命令一概述jps是jdk提供的一个查看当前java进程的小工具,可以看做是JavaVirtualMachineProcessStatusTool的缩写。非常简单实用。命令格式:jps[options][hostid][options]选项:-q:仅输出VM标识符,不包括classname,jarname,argumentsinmainmethod-m:输出mainmethod的参数-l:输出完全…

    2025年11月24日
    3
  • 单射(或称单变换)、双射与满射

    单射(或称单变换)、双射与满射单射(或称单变换)、双射与满射原文链接:http://www.cnblogs.com/wanghetao/archive/2012/03/16/2400619.html数学上,单射、满射和双射指根据其定义域和陪域的关联方式所区分的三类函数。单射:指将不同的变量映射到不同的值的函数。满射:指陪域等于值域的函数。即:对陪域中任意元素,都存在至少一个定义域中的元素与之对应。双射(

    2022年5月28日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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