gpt4 book ai didi

java - 如何将图像背景更改为白色?

转载 作者:行者123 更新时间:2023-11-29 04:43:48 26 4
gpt4 key购买 nike

我有一组图片。图片有一个简单的背景。我想使用 Marvin Framework 将该背景更改为白色和 Java。

由于我是 Marvin 的新手,更改背景让我很麻烦。我也尝试过 opencv for java 但它给出了不满意的链接错误。

图片示例:

enter image description here

最佳答案

要获得完美的结果,您需要找到一种去除阴影的方法。但我认为这对您来说是一个很好的起点。

算法:

  1. 在给定灰度阈值的情况下,将图像转换为二值颜色模型(像素为真或假)。
  2. 执行形态学扩张以关闭鞋子边界的开口。
  3. 用颜色 rgb(255,0,255) 填充背景
  4. 在二值图像中用新颜色填充背景后,将原始图像中的相同像素设置为白色。

输出:

enter image description here

源代码:

import static marvin.MarvinPluginCollection.*;

public class RemoveBackground {

public RemoveBackground(){
MarvinImage image = MarvinImageIO.loadImage("./res/shoes.jpg");
MarvinImage bin = MarvinColorModelConverter.rgbToBinary(image, 116);
morphologicalDilation(bin.clone(), bin, MarvinMath.getTrueMatrix(5, 5));
MarvinImage mask = MarvinColorModelConverter.binaryToRgb(bin);
boundaryFill(mask.clone(), mask, 5, 5, new Color(255,0,255));


for(int y=0; y<mask.getHeight(); y++){
for(int x=0; x<mask.getWidth(); x++){
if(mask.getIntColor(x, y) == 0xFFFF00FF){
image.setIntColor(x, y, 255,255,255);
}
}
}
MarvinImageIO.saveImage(image, "./res/shoes_out.jpg");
}

public static void main(String[] args) {
new RemoveBackground();
System.exit(0);
}
}

关于java - 如何将图像背景更改为白色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38090675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com