作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组图片。图片有一个简单的背景。我想使用 Marvin Framework 将该背景更改为白色和 Java。
由于我是 Marvin 的新手,更改背景让我很麻烦。我也尝试过 opencv for java 但它给出了不满意的链接错误。
图片示例:
最佳答案
要获得完美的结果,您需要找到一种去除阴影的方法。但我认为这对您来说是一个很好的起点。
算法:
输出:
源代码:
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/
我是一名优秀的程序员,十分优秀!