1、直接看代码,如何抠得不是很完美,修改下色差范围值,直到将底色全部抠掉


import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;public class Test {//色差范围0~255public static int color_range = 75;public static void main(String[] args) throws Exception{BufferedImage image = ImageIO.read(new File("/Users/xiaomin/文档/图片/123.jpeg"));// 高度和宽度int height = image.getHeight();int width = image.getWidth();// 生产背景透明和内容透明的图片ImageIcon imageIcon = new ImageIcon(image);BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics(); // 获取画笔g2D.drawImage(imageIcon.getImage(), 0, 0, null); // 绘制Image的图片,使用了imageIcon.getImage(),目的就是得到image,直接使用image就可以的int alpha = 0; // 图片透明度// 外层遍历是Y轴的像素for (int y = bufferedImage.getMinY(); y < bufferedImage.getHeight(); y++) {// 内层遍历是X轴的像素for (int x = bufferedImage.getMinX(); x < bufferedImage.getWidth(); x++) {int rgb = bufferedImage.getRGB(x, y);// 对当前颜色判断是否在指定区间内if (colorInRange(rgb)){// #AARRGGBB 最前两位为透明度rgb = (alpha << 24) | (rgb & 0x00ffffff);bufferedImage.setRGB(x, y, rgb);alpha = 0;}else{// 设置为不透明alpha = 255;// #AARRGGBB 最前两位为透明度rgb = (alpha << 24) | (0xff0000);bufferedImage.setRGB(x, y, rgb);}}}// 绘制设置了RGB的新图片,这一步感觉不用也可以只是透明地方的深浅有变化而已,就像蒙了两层的感觉g2D.drawImage(bufferedImage, 0, 0, null);// 生成图片为PNGImageIO.write(bufferedImage, "png", new File("/Users/zhuxiao/construn/文档/图片/b.png"));}// 判断是背景还是内容public static boolean colorInRange(int color) {int red = (color & 0xff0000) >> 16;// 获取color(RGB)中R位int green = (color & 0x00ff00) >> 8;// 获取color(RGB)中G位int blue = (color & 0x0000ff);// 获取color(RGB)中B位// 通过RGB三分量来判断当前颜色是否在指定的颜色区间内if (red >= color_range && green >= color_range && blue >= color_range){return true;};return false;}}

java 实现抠图(项目应用场景:抠图章)相关推荐

  1. 【课题总结】OpenCV 抠图项目实战(11)算法实验平台

    Python 小白的课题报告-OpenCV 抠图项目实战(11)抠图算法实验平台 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能 ...

  2. 【课题报告】OpenCV 抠图项目实战(10)PyQt5 使用

    Python 小白的课题报告-OpenCV 抠图项目实战(10)PyQt5 使用 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能 ...

  3. 【课题总结】OpenCV 抠图项目实战(2)抠图绪论

    Python 小白的课题报告:OpenCV 抠图项目实战(2)抠图绪论 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 Op ...

  4. 【课题总结】OpenCV 抠图项目实战(12)源程序代码

    Python 小白的课题报告-OpenCV 抠图项目实战(12)源程序代码 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

  5. 【课题总结】OpenCV 抠图项目实战(8)图像轮廓

    Python 小白的课题报告-OpenCV 抠图项目实战(8) 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 OpenCV ...

  6. 【课题总结】OpenCV 抠图项目实战(7)边缘检测

    Python 小白的课题报告-OpenCV 抠图项目实战(7) 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 OpenCV ...

  7. 【课题总结】OpenCV 抠图项目实战(6)色彩范围抠图

    Python 小白的课题报告-OpenCV 抠图项目实战(6)色彩范围抠图 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

  8. 【课题总结】OpenCV 抠图项目实战(5)自适应阈值抠图

    Python 小白的课题报告-OpenCV 抠图项目实战(5)自适应阈值抠图 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

  9. 【课题总结】OpenCV 抠图项目实战(4)固定阈值抠图

    Python 小白的课题报告-OpenCV 抠图项目实战(4)固定阈值抠图 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

  10. 【课题总结】OpenCV 抠图项目实战(3)抠图综述

    Python 小白的课题报告-OpenCV 抠图项目实战(3)抠图综述 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 Op ...

最新文章

  1. strstr php文档,php字符串函数学习之strstr()
  2. Javascript模块化编程(三):require.js的用法
  3. fscanf()函数具体解释
  4. Android4.0.4之后,服务器返回401或者407时,获取不到消息体的解决办法
  5. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具的 main 函数分析 )
  6. 一家踏实做产品,在疫情下销售增速仍达35%的公司,年报长啥样?
  7. django 1.8 官方文档翻译: 1-2-4 编写你的第一个Django应用,第4部分
  8. 以下关于组装微型计算机的叙述 不正确的是,昆明理工大学 计算机系统练习题...
  9. python的JSON模块和OS模块
  10. vue工程化与路由router
  11. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_11使用骨架创建maven的java工程...
  12. cadvisor 常用容器监控指标
  13. golang switch使用
  14. 【Python表白小程序】表白神器——赶紧收藏起来~
  15. ultravnc中文版,不能错过的5款ultravnc中文版
  16. org.apache.ibatis.builder.IncompleteElementException:Could not find result map cn.lyp.entity.Book
  17. 直播带货app源码,实现直播连麦和PK
  18. VI 之快速查找定位
  19. 网址怎样收藏到我计算机桌面,电脑应该如何收藏网址
  20. IE8 各种版本链接

热门文章

  1. WPS Word中怎么打出拼音和声调让别人懂的这个字怎么读
  2. 「文献」多倍体植物基因组测序组装当前策略
  3. 毕业设计:微博语料中文情感分析
  4. 从俄罗斯恐怖爆炸谈平安城市安防技术
  5. access中所有女生的记录,ACCESS建查询,如何查两个表里的内容
  6. C++中的_access函数(判断文件是否存在)
  7. 信号处理在matlab常用函数
  8. 34 | 别再说不能使用Join了(这是常识问题-上篇)
  9. 山东大学高频电子线路实验六 频率调制及鉴频实验详解
  10. FPGA信号处理系列文章——数字锁相环