图像模板 Java
Image To Stencil in Java
我是 java 图像处理的新手,我正在尝试将图像转换为模板(我认为 stencil 是它的名字!).
输入图片是这样的:-
处理后的图像是这样的:-
我搜索了 google。但可以找到解决方案。 (可能是因为我不知道这个进程的实际名称是什么。)
java可以吗?
是的,我找到了解决方案。如果我们对图像进行二值化,它就会起作用。
输入图片:-
输出图像:-
代码:-
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)
}
}
}
我是 java 图像处理的新手,我正在尝试将图像转换为模板(我认为 stencil 是它的名字!).
输入图片是这样的:-
处理后的图像是这样的:-
我搜索了 google。但可以找到解决方案。 (可能是因为我不知道这个进程的实际名称是什么。)
java可以吗?
是的,我找到了解决方案。如果我们对图像进行二值化,它就会起作用。
输入图片:-
输出图像:-
代码:-
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)
}
}
}