繁体   English   中英

图像处理java

[英]Image processing java

我是java的初学者。 在我的最后一年项目中,我必须做一些与实时图像处理有关的事情。 我现在正在做的是尝试在JavaCv的帮助下将Matlab程序转换为Java。 我真的无法处理3-D martrix。 这是3个问题。

  1. 从RGB 3-D图像中获取红色分量 :Matlab代码: Red=I(:,:,1); Java代码: cvInRangeS(imgRGB, cvScalar(0, 0, 0, 0), cvScalar(255, 0, 0, 0), imgR); 我可以在java中这样做吗?

  2. 在1-D矩阵中,如何将以下代码转换为java? matlab代码: imgB(find(imgA~=0))=255; Matlab代码意味着,为imgB中的每个非零像素添加一个int 255 in imgB。

  3. 我可以从1-D IplImage类型图像中提取一些坐标吗? 如果是的话,怎么去呢?

1 - 从RGB 3-D图像中获取R Matlab代码:Red = I(:,:,1); Java代码:cvInRangeS(imgRGB,cvScalar(0,0,0,0),cvScalar(255,0,0,0),imgR); 我可以用java这样做吗?

如果你想从图像中获得红色 ,你可以试试这个:

    BufferedImage image = ImageIO.read(new File("////////image path"));
    for (int i = 0; i < image.getWidth(); i++) {
        for (int j = 0; j < image.getHeight(); j++) {
            Color c = new Color(image.getRGB(i, j));
            int red = c.getRed();//////////here you get the Red color , you can make it array 2D 
            System.out.println(red);
        }
    }

2-在1-D矩阵中,如何将以下代码转换为java? matlab代码:imgB(find(imgA~ = 0))= 255; Matlab代码意味着,为imgA中的每个非零像素在imgB中放置一个int 255。

你可以这样做

  for (int i = 0; i < imgA.getWidth(); i++) {
        for (int j = 0; j < imgA.getHeight(); j++) {
            if (Color.BLACK.getRGB() != imgA.getRGB(i, j)) {
                imgB.setRGB(i, j, 255);
            }
        }

注意:使用BufferedImage定义图像

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM