【问题标题】:Image To Stencil in JavaJava中的图像模板
【发布时间】:2021-12-14 05:46:53
【问题描述】:

我是 Java 图像处理的新手,我正在尝试将图像转换为模板(我认为 stencil 是给它的名称!)。

输入图像是这样的:-

处理后的图像会是这样的:-

我搜索了谷歌。但能找到解决办法。 (也许是因为我不知道这个过程的实际名称是什么。)

这可以用 java 实现吗?

【问题讨论】:

  • 是的,有可能。
  • @tgdavies 先生怎么样?这是某种类型的边缘检测吗?
  • 我猜这是一个简单的阈值。
  • @tgdavies 先生喜欢this?
  • 看起来有道理,试试吧!

标签: java image image-processing bufferedimage java-17


【解决方案1】:

是的,我找到了解决方案。如果我们对图像进行二值化,它将起作用。

输入图像:-

输出图像:-

代码:-

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Main {

 
    public static void main(String[] args) throws  IOException {
        
        BufferedImage bi = ImageIO.read(new File("D:\\IMG_20211029_124954.jpg"));
        
      ImageIO.write(binarizeImage(bi), "png", new File("D:\\1.png"));
 
}
public static BufferedImage binarizeImage(BufferedImage img_param) 
{
    BufferedImage image = new BufferedImage(
        img_param.getWidth(), 
        img_param.getHeight(),                                    
        BufferedImage.TYPE_BYTE_BINARY
    );

    Graphics g = image.getGraphics();
    g.drawImage(img_param, 0, 0, null);
    g.dispose();

    
    return image;
}
}

要使图像透明,您可以这样做:-

for(int i=0;i<img.width;i++){
for(int j=0;j<img.height;j++){
Color c = new Color(255,255,255,0);
if(img.getRGB==Color.white.getRGB){
img.setRGB(i,j,c.getRGB)
}
}
}

【讨论】:

  • 哇,效果很好。
猜你喜欢
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2022-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多