【sdk】- 对接阿里云抠图

news2025/1/11 2:28:16

文档地址:https://help.aliyun.com/zh/viapi/use-cases/general-image-segmentation?spm=a2c4g.11186623.0.0.3814173cenldIs

java对接阿里云的通用分割,将代码原封不动复制进来,执行结果失败,咨询阿里云的人员之后,由于jar包冲突导致,需要引入一些特定的包版本来实现
在这里插入图片描述

pom引用

  <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>imageseg20191230</artifactId>
            <version>2.0.2</version>
            <exclusions>
                <exclusion>
                    <groupId>com.squareup.okhttp3</groupId>
                    <artifactId>okhttp</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-openapi</artifactId>
            <version>0.3.4</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-console</artifactId>
            <version>0.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-util</artifactId>
            <version>0.2.22</version>
        </dependency>
      <!--在我的服务中必须手动再次引人,不然报错-->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
        </dependency>

代码

只需要改pom,对于获取环境变量中的ak信息,完全没必要。

public class AliyunApiService {
    public static com.aliyun.imageseg20191230.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        /*
          初始化配置对象com.aliyun.teaopenapi.models.Config
          Config对象存放 AccessKeyId、AccessKeySecret、endpoint等配置
         */
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                .setAccessKeyId(accessKeyId)
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "imageseg.cn-shanghai.aliyuncs.com";
        return new com.aliyun.imageseg20191230.Client(config);
    }

    public static void main(String[] args_) throws Exception {


        // 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html
        // 如果您使用的是RAM用户的AccessKey,还需要为子账号授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html
        // 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行代码示例前必须先配置环境变量。
        String accessKeyId = "";
        String accessKeySecret = "";
        com.aliyun.imageseg20191230.Client client = AliyunApiService.createClient(accessKeyId, accessKeySecret);
        // 场景一,使用本地文件
//         InputStream inputStream = new FileInputStream(new File("/Users/qweasdzxc/Downloads/WechatIMG201.jpeg"));
        // 场景二,使用任意可访问的url
        URL url = new URL("https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/imageseg/SegmentCommonImage/SegmentCommonImage1.jpg");
        InputStream inputStream = url.openConnection().getInputStream();
        com.aliyun.imageseg20191230.models.SegmentCommonImageAdvanceRequest segmentCommonImageAdvanceRequest = new com.aliyun.imageseg20191230.models.SegmentCommonImageAdvanceRequest()
                .setImageURLObject(inputStream);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            SegmentCommonImageResponse segmentCommonImageResponse = client.segmentCommonImageAdvance(segmentCommonImageAdvanceRequest, runtime);
            // 获取整体结果
            System.out.println(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(segmentCommonImageResponse)));
            // 获取单个字段
            System.out.println(segmentCommonImageResponse.getBody().data.imageURL);
        } catch (TeaException teaException) {
            // 获取整体报错信息
            System.out.println(com.aliyun.teautil.Common.toJSONString(teaException));
            // 获取单个字段
            System.out.println(teaException.getCode());
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE: Thread类

Thread的常见构造方法 Thread的常见属性 ID 是线程的唯一标识,不同线程不会重复名称是在使用各种调试工具时会用到的状态表示线程当前所处的情况优先级高的线程理论上来说更容易被调度到关于后台线程,需要记住:JVM会在一个进程的所有非后台线程结束后,才会结束运行是否存活,即r…

爱可声助听器:在全球听力市场中破冰前行

早在2021年&#xff0c;全球助听器市场规模就已经达到了101亿美元&#xff0c;Grand View Research数据显示&#xff0c;这一规模会持续增大&#xff0c;在未来的6年间&#xff0c;该数据将以4.9%的复合年增长率&#xff08;CAGR&#xff09;增长。 作为发展中国家&#xff0c…

【SpringBoot】自定义注解终极升级版<i18n国际化>方案源码Copy

零、前言 在后端对于 SpringBoot 的 数据库数据&#xff0c;需要国际化的字段和主要显示字段是分离的&#xff0c;为了避免大耦合性&#xff0c;与用户端的国际化字段处理问题&#xff0c;统一采用主要显示数据的实体字段。为此&#xff0c;我设计了一套解决方案&#xff0c;通…

leetcode-240. 搜索二维矩阵 II

题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10…

使用Spring AI 、 Qdrant 和 Ollama 实现完全本私有化的RAG应用

使用Spring AI 、 Qdrant 和 Ollama 实现完全本私有化的RAG应用 迄今为止&#xff0c;Python 一直是实现检索增强生成&#xff08;RAG&#xff09;应用程序的首选语言&#xff0c;几乎成为开发大型语言模型&#xff08;LLM&#xff09;应用程序的默认选择。然而&#xff0c;对于…

WPF 依赖属性 IsHitTestVisible

IsHitlTestVisible 仅影响本身的元素&#xff08;含内部包含的子元素&#xff09;&#xff0c;不影响父元素效果&#xff0c;且事件会传递到父元素。 Eg&#xff1a; 如父元素有click事件&#xff0c; 子元素设置了IsHitTestVisiblefalse&#xff0c; 当鼠标单击这个子元素时&…

openssl 制作 信用库与服务证书

文章目录 前言openssl 制作 信用库与服务证书1. CA 证书2. 服务器证书/秘钥库3. 创建信用库4. 注意事项 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会…

【JS】一篇BOM详解笔记 | b站李立超

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、BOM简介&#xff1a;☀️☀️☀️2.1 BOM是什么及有什么用2.2 BOM对象有哪些 三、BOM各类对象讲解&#xff1a;☀️☀️☀️3.1 Navigator3.2 Location3.3 History 三、补充知识&#x1f680;&#x1f680;&#…

尚硅谷谷粒商城项目笔记——六、使用navciat连接docker中的mysql容器【电脑CPU:AMD】

六、使用navciat连接docker中的mysql容器 注意&#xff1a; 因为电脑是AMD芯片&#xff0c;自己知识储备不够&#xff0c;无法保证和课程中用到的环境一样&#xff0c;所以环境都是自己根据适应硬件软件环境重新配置的&#xff0c;这里的虚拟机使用的是VMware。 1navicat免费…

浴室柜哪个牌子质量好性价比高 | 提亮空间,点缀生活!

摘要&#xff1a;作为浴室的标配&#xff0c;浴室柜不仅是重要的收纳家具&#xff0c;也是最能体现卫浴空间和美感的存在。浴室柜看似平凡&#xff0c;却在无形之中散发出自身的魅力&#xff0c;为浴室颜值加分。浴室柜哪个品牌好&#xff1f;无论是注重外观的你&#xff0c;还…

《计算机组成原理》(第3版)第4章 存储器 复习笔记

第4章 存储器 一、概述 &#xff08;一&#xff09;存储器分类 1&#xff0e;按存储介质分类 &#xff08;1&#xff09;半导体存储器&#xff1b; &#xff08;2&#xff09;磁表面存储器&#xff1b; &#xff08;3&#xff09;磁芯存储器&#xff1b; &#xff08;4&…

面试笔记8.6

缓存 1.如何保证redis与数据库一致性 redis面试&#xff1a;如何保证缓存和数据库数据的一致性&#xff1f;_使用update更新数据,json缓存不更新-CSDN博客 如果先删除缓存&#xff0c;再删除数据库&#xff0c;数据不一致&#xff0c; 解决 删 1.先操作缓存但不删除缓存&…

lambda语法,java8Stream流,maven

lambda语法 Arraylist排序 ArrayList<Integer> a new ArrayList();a.add(1);a.add(2);a.add(3);a.sort(new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o2) {return o1-o2;//对集合a中数据进行升序排序}}); 但是这样的书写还是有…

JavaEE: 进程和线程

文章目录 进程线程的概念和区别总结如何创建线程1.继承Thread重写run2.实现Runnable重写run3.继承Thread重写run,通过匿名内部类来实现4. 实现Runnable重写run,通过匿名内部类来实现5.基于lambda表达式来创建 虚拟线程 并发编程: 通过写特殊的代码&#xff0c;把多个CPU核心都利…

Leetcode力扣刷题——182.查找重复的电子邮箱

题目 编写解决方案来报告所有重复的电子邮件。 请注意&#xff0c;可以保证电子邮件字段不为 NULL。 以 任意顺序 返回结果表。 结果格式如下例。 结果 # Write your MySQL query statement below select Email from Person group by email having count(*)>1; 知识点 c…

Java 抽象知识笔记总结(油管)

Java系列文章目录 Java Optional 容器笔记总结 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述四、解决方案&#xff1a;4.1 抽象类的使用4.2 抽象类与接口的区别4.2.1 接口复习4.2.2 具体区别4.2.3 使用场景4.2.3.1 抽象类使用场景4.2.3.2 接口使用…

读零信任网络:在不可信网络中构建安全系统11用户组的认证和授权

1. 用户组的认证和授权 1.1. 几乎在每个系统中都有一小部分操作需要被密切关注 1.1.1. 每个应用对这部分操作的风险容忍度各有不同&#xff0c;且没有任何下限 1.1.2. 一部分风险是由用户个人的可信度决定的 1.1.2.1. 单个用户的可信度可能很低 1.1.2.2. 多个用户组合的可信…

OpenAI人事变动:联合创始人John Schulman离职加入Anthropic

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【JVM基础14】——垃圾回收-强引用、软引用、弱引用、虚引用的区别

目录 1- 引言&#xff1a;为什么分多种引用类型2- ⭐核心&#xff1a;2-1 强引用2-2 软引用2-3 弱引用2-4 虚引用 3- 小结&#xff1a;3-1 强引用、软引用、弱引用、虚引用的区别&#xff1f; 1- 引言&#xff1a;为什么分多种引用类型 在 Java 中&#xff0c;引用类型被分为强…

ICM-20948芯片详解(8)

接前一篇文章&#xff1a;ICM-20948芯片详解&#xff08;7&#xff09; 六、寄存器详解 1. 总述 ICM-20948共有user bank 0~3共4组寄存器。 USER BANK 0寄存器图 USER BANK 0所包含的寄存器如下图所示&#xff1a; USER BANK 1寄存器图 USER BANK 1所包含的寄存器如下图所…