이미지의 흰색 배경을 제거하고 다른 이미지로 저장하고 싶습니다. 배경을 추출하는 코드를 작성했지만 일부 픽셀 값을 남겨 둡니다. 체크 아웃 원래 이미지 : 이미지의 흰색 배경을 제거하는 방법 - java
체크 아웃 이미지를 잘립니다.
도 제거하고 싶습니다.
int x1=0;
int y1=0;
boolean res = false;
System.out.println("in formatImage");
// Widht 제거 ...
for (int y = 0; y <= h-1; y++) {
System.out.println("Y = "+y);
for (int x = 0; x <= x1-1; x++) {
System.out.println("("+x+","+y+") : "+b21.getRGB(x, y));
if (!new Color(b21.getRGB(x, y)).equals(Color.WHITE)) {
res = true;
}
if (res) {
for (int p = 0; p <= x1-1; p++) {
b31.setRGB(p,y1,new Color(b21.getRGB(p, y)).getRGB());
}
y1++;
res = false;
break;
}
}
}
b31=new BufferedImage(x1,y1,BufferedImage.TYPE_INT_RGB);
int ty=y1;
y1=0;
for (int y = 0; y <= h-1; y++) {
for (int x = 0; x <= x1-1; x++) {
if (!new Color(b21.getRGB(x, y)).equals(Color.WHITE)) {
res = true;
}
if (res) {
for (int p = 0; p <= x1-1; p++) {
b31.setRGB(p,y1,new Color(b21.getRGB(p, y)).getRGB());
}
y1++;
res = false;
break;
}
}
}
B31 최종 이미지가
for (int x = 0; x <= w-1; x++) {
for (int y = 0; y <= h-1; y++) {
if(new Color(bi1.getRGB(x, y)).getRGB()==-1)
{res=false;}
else if (!new Color(bi1.getRGB(x, y)).equals(Color.WHITE)) {
res = true;
}
if (res) {
for (int p = y; p <= h-1; p++) {
b21.setRGB(x1,p,new Color(bi1.getRGB(x, p)).getRGB());
}
x1++;
res = false;
break;
}
}
}
b21=new BufferedImage(x1,h,BufferedImage.TYPE_INT_RGB);
x1=0;
for (int x = 0; x <= w-1; x++) {
for (int y = 0; y <= h-1; y++) {
if(new Color(bi1.getRGB(x, y)).getRGB()==-1)
{res=false;}
else if (!new Color(bi1.getRGB(x, y)).equals(Color.WHITE)) {
res = true;
}
if (res) {
for (int p = 0; p <= h-1; p++) {
b21.setRGB(x1,p,new Color(bi1.getRGB(x, p)).getRGB());
}
x1++;
res = false;
break;
}
}
}
// 신장 제거 :
여기 내 코드입니다.
"흰색 배경 제거"란 무엇을 의미합니까? *** 이미지를 자르는 방법 ***을 정말로 묻고 있습니까? 그게 당신 코드가하는 것처럼 보입니다. 작동하지 않는 것은 무엇입니까? 흰색 배경의 어떤 부분이 제거되지 않습니까? 귀하의 질문은 명확하지 않습니다. –
근처의 배경이 제거되지 않습니다. 이미지를 다운로드하여 동일하게 확인할 수 있습니다. –