【问题标题】:Image processing java图像处理java
【发布时间】:2013-01-28 16:48:29
【问题描述】:

我是一个完整的java初学者。在我最后一年的项目中,我必须做一些与实时图像处理相关的事情。我现在正在做的是尝试在 JavaCv 的帮助下将 Matlab 程序转换为 Java。我将无法真正处理 3-D 矩阵。 这里有 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. 在一维矩阵中,如何将下面的代码转换成java? Matlab代码:imgB(find(imgA~=0))=255; Matlab代码的意思是,在imgB中放一个int 255对于来自 imgA 的每个非零像素。

  3. 我可以从一维IplImage 类型的图像中提取一些坐标吗? 如果可以,该怎么做?

【问题讨论】:

    标签: java matlab image-processing javacv


    【解决方案1】:

    1 - 从 RGB 3-D 图像中获取 R Matlab 代码:Red=I(:,:,1);爪哇 代码: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- 在一维矩阵中,如何将下面的代码转换成java? MATLAB 代码:imgB(查找(imgA~=0))=255; Matlab 代码的意思是,在里面放一个 int 255 来自 imgA 的每个非零像素的 imgB。

    你可以这样做

      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 定义图像

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 2015-05-10
      • 2013-01-13
      • 2011-01-14
      • 1970-01-01
      相关资源
      最近更新 更多