2026年国产数据库开发实战:选型、迁移与达梦兼容性避坑

国产数据库达梦DM8 本内容遵循CC 4.0 BY-SA版权协议
易行男·龙大崇 易行男·龙大崇 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要

2026年开工第一天,需求文档里的数据库一栏赫然写着“达梦”,我看了一眼,倒是没有太多意外。做数据库开发这么多年,国产数据库早就从“备胎”变成了“常驻选项”,尤其到了2026年,几乎所有项目选型清单上都会出现国产关系型数据库的名字。这篇我不想讲那些虚的,就说实在的:为什么你绕不开、几大阵营怎么区分、从Oracle/MySQL迁过来代码要改哪里、达梦数据库开发测试账号怎么申请怎么续期,以及我在真实项目里踩过的兼容性坑。

先说结论:国产数据库开发这件事,已经不是学不学的问题,而是早学晚学的问题。早点把思维习惯改过来,真到项目上不会慌。

1. 2026年的数据库选型会上,国产数据库为什么会出现在每一张候选清单里

1.1 客户侧的默认选项变了

以前做项目,客户给的数据库要求通常是“Oracle”或者“MySQL”,偶尔有PostgreSQL。从2024年开始,我接的几个项目,需求文档里已经直接写明“数据库采用国产关系型数据库,优先达梦/人大金仓/openGauss”之类的话。到了2025年之后,这基本成了标配。

不是我们开发者主动去拥抱,而是业务方在立项时就已经把国产数据库列成了必选项。有些是老系统改造,要从Oracle迁到国产库;有些是全新系统,客户明确要求考虑信创环境兼容性。这两类需求叠加在一起,导致你在2026年做数据库开发,不懂国产数据库会很吃亏。

1.2 生态和文档不再是“劝退”状态

早年提到国产数据库,大家第一反应是“文档少、问题没人答、驱动不完善”。我理解这种顾虑,因为我自己也经历过。但现在情况不一样了,几个主流产品的官方文档已经能做到按模块检索、带示例代码,社区问答也能搜到具体错误码的解决方案。

工具链方面,像Navicat、DBeaver、DataGrip这些常用客户端,基本都支持直连达梦、人大金仓、OceanBase等。MyBatis、Hibernate等ORM框架也各自补上了适配方言。说白了,过去阻碍国产库落地的最大障碍是“周边配套不齐”,现在这个短板基本补齐了。再加上很多云平台直接提供国产数据库的托管实例,你甚至不需要自己装服务器,点几下就能创建一个测试库。

1.3 人才市场的筛选信号

还有一个很现实的信号:招聘网站上Java后端岗位,不少都加了一条“熟悉达梦、人大金仓等国产数据库优先”。数据库管理员岗位更是明确要求具备国产数据库运维经验。说明这已经从一个“小众技能”变成了“常规加分项”。

综合看下来,2026年做数据库开发,你已经没法把头埋进沙子里假装看不见国产数据库了。它不是一个单纯的技术选型,而是项目交付的硬性约束。既然如此,不如早点把相关知识体系搭起来。

2. 阵营梳理:集中式、分布式、兼容路线到底怎么选

国产数据库不是一个产品,而是一个庞大的家族。初接触的人容易把它们混为一谈,但选型逻辑完全不同。我从架构和兼容性两个维度帮你拆开。

2.1 单机/主备集中式:达梦、人大金仓、openGauss

这一派的特点是继承商业数据库经验,主打单机或主备架构,稳定性优先,适合政企、金融、能源、制造业等典型交易系统。

达梦DM8是这里面我接触最多的。它的SQL语法、存储过程、包、触发器设计上大量兼容Oracle,开发体验最接近“Oracle平替”。如果你长期写Oracle,上手达梦会非常顺。这也是为什么很多Oracle存量系统改造会选择达梦。

人大金仓KingbaseES基于PostgreSQL内核,同时提供Oracle和PostgreSQL两种兼容模式。它比openGauss更早进入政务市场,很多部委级项目在用。如果你熟悉PostgreSQL,学人大金仓的底子会轻松不少。

openGauss是华为开源出来的,代码源自PostgreSQL,也吸收了部分Oracle设计思路。它的企业版GaussDB在通信行业落地很多,生态偏技术型,背后有openGauss社区推动。适合有一定Linux和PostgreSQL基础、想看源码的人。

这一派的共性是:架构上不追求“无限扩展”,而是把单库性能、高可用、备份恢复打磨得很扎实。

2.2 分布式/云原生:OceanBase、TiDB、GaussDB

当数据量到了一定规模,比如单表过亿,又或者需要在线扩展,集中式库就会捉襟见肘。这时分布式数据库更合适,在互联网和大型核心系统里见得越来越多。

OceanBase是蚂蚁集团开源的,原生分布式,支持MySQL和Oracle两种兼容模式。它的强项是金融级高可用和HTAP能力,这些年从金融圈往外延伸。对于熟悉MySQL业务代码的团队,兼容模式迁移成本相对低。

TiDB是PingCAP的产品,兼容MySQL协议,天然云原生,水平扩展方便,文档很完善,社区活跃度高。如果你在互联网公司,TiDB大概率已经出现在你的技术栈里了,只不过很多团队没把它归入“国产数据库”这个标签里。

GaussDB是华为的产品线,有分布式版本也有集中式版本,常和openGauss联系在一起,适合华为生态里的大中型系统。它和openGauss的关系比较复杂,简单理解就是企业版更“重”,运维门槛更高。

2.3 “兼容模式”是一把双刃剑

很多国产库都会宣传“兼容Oracle”或“兼容MySQL”。这个兼容分两层:

一层是语法兼容,比如支持ROWNUM、NVL、SYSDATE这些Oracle特征函数;另一层是行为兼容,比如事务隔离级别、隐式转换规则、空字符串处理、字符集排序规则。语法兼容容易做,行为兼容最难。

我在项目里遇到最典型的情况:SQL在源库跑得好好的,迁到国产库后报“ORA-01461”或者“关键字附近语法错误”,一查发现是某个内置函数的行为不完全一致。所以我的建议是:选型时不要只看“兼容模式”的宣传,而是把你的核心SQL脚本导出,实际在新库跑一遍,做一轮回归测试。

2.4 一张选型参考表

产品 架构类型 主要兼容风格 典型场景 上手难度
达梦DM8 集中式/主备 Oracle为主 金融、政务、国企系统,Oracle迁移 中,Oracle背景最容易
人大金仓KingbaseES 集中式/主备 PostgreSQL+Oracle 政务、能源、行业垂直系统 中,PG背景友好
openGauss 集中式/主备 PostgreSQL为主 通信、企业自建云 中高,偏内核
OceanBase 原生分布式 MySQL+Oracle 金融核心、互联网大数据、HTAP 高,需要分布式思维
TiDB 原生分布式 MySQL 互联网、实时分析、云原生场景 中,MySQL背景友好
GaussDB 集中式/分布式 根据版本有多种兼容 通信、大型政企、华为生态 高

我个人的选型建议是:如果系统数据量在千万级以下、并发不高,老老实实选集中式,别为了“分布式”三个字增加运维复杂度。如果业务增长快、并发高、需要在线扩容,再考虑分布式。

3. 从Oracle/MySQL切到国产库,开发习惯上要改的那几刀

真正动手开发时你会发现,大部分SQL是一样的,但总有几个地方会卡一下。这几个地方的差异是开发者最需要提前知道的。

3.1 分页、自增、序列:三件套最容易翻车

分页是每个后端开发都绕不开的。Oracle老写法喜欢用ROWNUM嵌套子查询,MySQL习惯LIMIT OFFSET。到了国产库这里,情况变得有点微妙:达梦两种风格都支持,但它本身是Oracle兼容路线,早期项目从Oracle迁移过来的人会继续用ROWNUM,而新项目用LIMIT也多的是。

openGauss和人大金仓走PostgreSQL路线,LIMIT是绝对主流。OceanBase和TiDB在MySQL模式下,就用LIMIT。

我建议你写新项目时统一用LIMIT风格,可读性好,迁移到大多数国产库都不用改。但要注意,LIMIT后面跟大偏移量时,性能会变差。如果遇到深度分页场景,换成基于主键的游标分页更靠谱。

自增列和序列也是重灾区。Oracle一般用序列+触发器实现自增;MySQL用AUTO_INCREMENT;达梦、人大金仓、openGauss都原生支持IDENTITY自增列。从Oracle迁过来的系统,最稳的做法是保留序列,把应用里的SEQ.NEXTVAL改成目标库的等价写法。从MySQL迁过来的,如果原来依赖AUTO_INCREMENT,你要确认新库表定义的写法并处理显式插入后的自增起始值。

3.2 数据类型、字符集和空字符串

数据类型这一块,表面看都是VARCHAR、NUMBER、DATE,实际细节很多。

Oracle里VARCHAR2按字节存储时,VARCHAR2(20)存不了20个汉字,因为一个汉字在ZHS16GBK里占2个字节,在UTF8里占3个字节。达梦兼容了这个行为,所以建表时要特别注意长度单位。人大金仓和openGauss虽然也有变长字符串,但语义更接近PostgreSQL。

超过一定长度的文本,建议直接用TEXT或CLOB,别在VARCHAR(4000)上面赌。我见过有人把一篇文章塞进VARCHAR(2000),结果数据被截断,导到一半报错,排查了很久。

字符集问题更阴险。源库是GBK,目标库是UTF8,同样一个中文字符串,LENGTH()返回的值可能不同,SUBSTR()切出来的结果也会错位。字符集不一致还会导致排序顺序和唯一索引判定变化。迁移前一定要把字符集统一规划好,最好在弄新库时直接选UTF8,并且让应用侧连接串显式指定characterEncoding=utf8。

再说空字符串。Oracle认为''就是NULL,MySQL认为''是普通空字符串,PostgreSQL也认为''不是NULL。部分国产库在Oracle兼容模式下会沿用Oracle的行为。如果你原来写MySQL业务,有一个where name = ''的判断,迁到Oracle兼容模式的国产库上可能永远查不出数据。这种问题光靠看代码很难发现,只能靠全量回归测试。

3.3 存储过程语法迁移:别照搬

达梦对Oracle PL/SQL的兼容性确实做得不错,函数、存储过程、包、游标这些主体语法可以大部分搬过来。但人大金仓和openGauss走PostgreSQL路线,虽然提供Oracle兼容包,很多复杂场景还是要改写。

以openGauss为例,它本身的过程语言是PL/pgSQL,如果你过去在Oracle里写了一堆带PACKAGE的存储过程,迁移到openGauss时不能指望一键转换,需要手工拆包、调整异常处理语法。

所以我的原则一直是:能不用存储过程就不用。业务逻辑放到应用层,数据库只管数据的增删改查和约束。这不是说存储过程一无是处,而是考虑到未来还要做国产化迁移和多云部署,数据库侧逻辑越少,迁移成本越低。

3.4 JDBC连接串、驱动和ORM方言

驱动和连接串是项目启动的第一道关,不同产品差异明显。

数据库 驱动类 JDBC URL
达梦DM8 dm.jdbc.driver.DmDriver jdbc:dm://127.0.0.1:5236
人大金仓KingbaseES com.kingbase8.Driver jdbc:kingbase8://127.0.0.1:54321/DB
openGauss org.opengauss.Driver jdbc:opengauss://127.0.0.1:5432/DB
OceanBase(MySQL模式) com.oceanbase.jdbc.Driver jdbc:oceanbase://127.0.0.1:2881/DB

ORM框架里,MyBatis分页插件需要配置正确的dialect,Hibernate则需要设置hibernate.dialect。这些配置在官方文档里都能找到,但很多人忽略了一点:即使驱动能连上,也不代表应用能跑对。你要在项目里加一个启动自检,先把几条关键SQL跑通,比如日期函数、字符串拼接、分页查询,别等部署到生产环境才暴露问题。

4. 达梦测试账号申请这件事,我帮你把流程和坑都踩了一遍

很多人第一次接触国产数据库,卡住的第一关不是SQL语法,而是没有环境。作为开发者,你总不能先找公司审批一台数据库服务器吧。所以自建本地开发环境、申请达梦数据库开发测试账号,就成了大家最关心的问题。

4.1 测试账号从哪里来、怎么申请

达梦官方提供了比较开放的开发测试渠道。我第一次申请时,是从达梦官网的开发者社区或者产品试用入口进去的,找到“DM8开发版”或“试用版”相关页面,填写申请信息,包括姓名、单位、电话、邮箱和用途说明。

这里有个经验:用途不要只写“学习”,尽量写具体,比如“用于XX项目/模块的数据库迁移适配测试”或“个人学习数据库开发”。理由越明确,审核通过率越高。我身边有同事用个人邮箱申请也通过了,但企业邮箱明显更稳。

提交后一般1到3个工作日会收到邮件,邮件里包含下载地址和license许可文件。注意下载地址可能有有效期,如果你隔了很久才打开邮件,链接可能失效了。这时候不用慌,回到官网重新提交或者联系在线客服,说明情况后可以重新获取。

4.2 开发许可到期后怎么继续申请

“达梦数据库开发测试帐号如何继续申请”这个话题经常被问,因为很多人以为申请一次就不让再申请了。实际上不是。

如果你的开发测试许可到期,直接重新走一遍申请流程就行。你可以用原来的单位信息再次提交,但用途描述最好更新为当前正在进行的阶段,比如“上期试用中已完成基础测试,本次申请用于XX模块的兼容性验证”。这样审核人员会觉得你是真实使用者,而不是来薅资源的。

如果重新申请被拒绝了,最常见的原因是信息重复或用途模糊。解决办法是换个入口再试试,或者在提交页面选择“续期申请”,再补充详细说明。还有更好用的办法是直接下载官方提供的开发版安装包,很多渠道的“开发版”并不强制绑定license,或者给了足够长的免费试用期,足够你完成本地学习和原型验证。

4.3 本地安装时最容易卡住的三个位置

拿到测试包后,本地装达梦有几个位置容易踩坑。

第一,依赖库缺失。达梦安装在Linux上时,经常遇到libncurses.so.5之类找不到的报错。解决办法是根据系统安装对应兼容库,Debian系用apt-get install libncurses5,RedHat系用yum install ncurses-compat-libs。

第二,初始化数据库实例。达梦安装后不会自动建实例,你需要执行dminit命令。我常用的初始化命令类似:

BASH
mkdir -p /opt/dm8/data
./dminit PATH=/opt/dm8/data PAGE_SIZE=16 CHARSET=1 CASE_SENSITIVE=1

其中PAGE_SIZE是页大小,一般生产环境用16或32,测试环境8也行。CHARSET=1代表UTF8,如果和业务字符集不匹配就会出乱码。CASE_SENSITIVE控制大小写敏感,这个参数初始化后很难改,建议先想清楚。

第三,启动服务。初始化完成后,用dmserver启动:

BASH
./dmserver /opt/dm8/data/DAMENG/dm.ini
disql SYSDBA/SYSDBA@localhost:5236

如果连接失败,先看dmserver进程是否还在,再检查防火墙有没有放行5236端口,最后确认SYSDBA密码没有被策略锁定。这些基础检查你提前做一遍,能省很多事。

4.4 申请和安装问题排查表

问题 常见原因 解决思路
审核没通过 用途描述不明确、使用非企业邮箱 写清项目阶段和用途,换企业邮箱重新提交
下载链接打不开 链接过期、浏览器拦截 登录开发者社区重新获取,或换浏览器
license文件导入失败 系统时间不准、许可文件与平台不匹配 校准系统时间,重新下载对应版本的许可
disql无法连接 实例未启动、端口不通、密码错误 检查dmserver进程、端口和密码策略
安装后启动报缺少库文件 系统缺少兼容库 根据Linux发行版安装compat库

这块的经验就是:遇到问题先检查基础环境,别急着怀疑达梦本身。很多时候就是Linux依赖库没装全、防火墙挡了端口,或者初始化参数没想清楚。

5. 几种典型兼容性报错及定位思路

真正干活的时候,你会遇到各种“看起来没毛病但就是报错”的情况。我整理几个高频场景,以及我的排查套路。

5.1 “关键字附近出现语法错误”:不是你的SQL写错了,是保留字列表不一样

有一次我从MySQL搬一张表到达梦,建表语句里有个字段叫comment,建表时报“关键字附近出现语法错误”。一开始我还以为自己多打了字符,后来发现是达梦把COMMENT当作保留字。类似LEVEL、SIZE、RANK这些词,在Oracle里用不用双引号都会有问题,在国产库里也可能触发保留字冲突。

解决方式有两种:一是建表时给特殊字段加双引号,例如"comment" VARCHAR(100),但双引号会引入大小写敏感问题,后续所有SQL都得带双引号;二是老老实实改字段名,比如改成comment_info。我的经验是能改字段名就改字段名,不要给自己埋雷。

5.2 隐式转换导致索引失效

有一回排查一条慢SQL,原来在MySQL跑0.1秒,迁到达梦后要3秒。看执行计划才发现,查询条件里把数字字段和字符串常量比较,达梦选择了把字段隐式转换成字符串,导致索引失效。

SQL
WHERE order_id = '123456'

如果order_id是数字类型,这写法在MySQL里也能跑,但执行计划可能不同。正确做法是参数类型严格匹配:

SQL
WHERE order_id = 123456

这种问题在开发环境数据量小的时候根本暴露不出来,数据量一上来就翻车。所以项目迁移后,一定要用接近生产的数据量做一轮性能回归。

5.3 “表或视图不存在”:大小写敏感导致的经典问题

国产数据库里大小写敏感行为不一致。达梦默认行为更像Oracle,不带双引号的标识符一般会转成大写;openGauss和人大金仓源自PostgreSQL,不带双引号会转成小写。如果你从MySQL迁移过来,表名原来是带大小写的,到一个转成大写、一个转成小写的库里,结果必然不一样。

遇到“表或视图不存在”,先别急着质疑权限,看一眼表名大小写。查询时可以用:

SQL
SELECT table_name FROM user_tables WHERE table_name = 'EMP';

确认实际存储的表名是什么。维护这种环境,最好的做法是团队内部约定:所有表名字段名统一小写,SQL里也统一小写,同时要求新库初始化时把大小写敏感参数按团队标准设定好。

5.4 序列不同步引发的主键冲突

数据迁移后,表里已经有10万行数据,但序列还停在1。应用一插入新记录,立刻报主键重复。这个错误很容易被误判为数据重复或主键索引坏了。

排查思路:查当前表主键最大值,再查序列当前值。很多国产库提供类似SELECT seq_name.currval FROM dual;的语句,但不同产品语法略有差异。把序列步进到最大值之后:

SQL
ALTER SEQUENCE seq_name RESTART WITH 100001;

注意不同数据库对RESTART WITH的支持不一样,达梦和Oracle风格接近,人大金仓和openGauss会有自己的语法。这个操作做完后记得插入一条测试数据验证序列是否正常。

5.5 通用的兼容性排查链路

遇到迁移类报错,别上来就百度错误码。我建议按这个顺序走:

  1. 拿到完整错误码和错误消息,去官方文档查语义。很多国产库错误码和Oracle相似,但也有专属定义。
  2. 在disql或管理工具里直接执行报错SQL,看能不能复现。能复现就说明和应用层无关,优先排查SQL本身。
  3. 逐步简化SQL。先去掉条件,再去掉关联表,最后留下最小可运行语句,定位是哪个片段触发错误。
  4. 打开应用侧的SQL日志或数据库审计,对比应用发出和实际执行的语句是否一致。有些框架会改写SQL,导致你看到的代码没问题,实际执行就报错。

这个链路能帮你快速缩小范围,比直接搜错误码更本质。

6. 2026年数据库开发者该往哪个方向补课

面对国产数据库浪潮,最怕的是“这也会一点,那也会一点,遇到问题全不会”。补课要有重点。

6.1 把SQL基础变成“万库通用资产”

换任何一个数据库,底层的SQL标准、索引原理、事务隔离级别、执行计划分析能力都是通用的。你不需要把每个国产库的每一个方言都背下来,但你要能看懂EXPLAIN输出,知道什么时候走索引、什么时候排序、什么时候回表。

这些知识在Oracle、MySQL、PostgreSQL上都成立,在国产库上也成立。先把根基打牢,再学具体产品就是快进快出。

6.2 学会做迁移评估和兼容性清单

现在最缺的不是“会写SQL”的人,而是能带项目迁移的人。做迁移评估有一套固定动作:

  • 收集源库对象清单,包括表、视图、存储过程、触发器、序列、同义词、定时作业。
  • 逐项评估在目标库的兼容情况,输出一个“兼容性清单”。
  • 关注字符集、排序规则、权限模型之间的差异。
  • 用达梦自带的数据迁移工具、Kettle或者DataX做数据迁移,但不要盲信工具,迁移完成后要做行数对比和抽样对比。
  • 安排全量回归测试,重点是分页、日期处理、字符串函数、隐式转换等环节。

会完整跑一遍这个流程的人,在项目里能承担“迁移负责人”的角色。

6.3 会查国产库自己的“体检报告”

每个数据库都有自己的一套系统视图和动态性能视图。达梦有v$dynamic_views、v$sessions等,openGauss和人大金仓保留了PostgreSQL的pg_stat_activity,OceanBase有oceanbase.DBA_OB_SERVERS之类。你不用记住所有视图,但至少要会用工具看当前连接、慢SQL和等待事件。

新上手一个国产库,我的建议是先花30分钟做四件事:建一个库、建一张表、导十万行数据、跑一次执行计划。这四件事做完,你对这个产品的“脾气”基本就摸清了。

6.4 不要只盯着一家,但也不必全都学

厂商的培训材料大多在强调自家产品怎么好,容易被带着走。我的建议是:集中式和分布式各选一个代表,比如集中式学达梦,分布式学TiDB或OceanBase二选一,把安装、SQL开发、JDBC接入、迁移适配流程完整走一遍。有余力再看其他产品的官方手册做对比,这样既不会变“厂商盲”,也保证你有实际的动手经验。

我在实际项目中的一个体会是:国产数据库开发并没有想象中那么难,真正难的是把旧思维拧过来。你习惯了Oracle的ROWNUM和NVL,换了环境会觉得别扭;你从MySQL带过来的建表语句可能到处都是“反引号”,到了达梦就成了语法错误。这些不是智力问题,是经验问题。多写、多试、多在社区查资料,很快就熟了。2026年数据库开发者的核心竞争力,不是背下了多少款数据库的特性,而是面对一个“没怎么见过”的数据库时,敢动手、会拆解、能定位问题。这个能力,放到哪一年都不过时。

相关推荐

基于Python+Open CV的手势识别算法设计

伴随着人工智能时代的到来,人机交互的领域也逐渐成为研究的一大方向;其中,手势识别是人机交互领域的一项关键技术,自此手势识别也迎来了一波高潮,近几年无论是在消费领域、电子领域、数码领域、家电领域甚至汽车领域上,都能或多或少的见到手势识别的身影。 手势识别在设计智能高效的人机界面方面具有至关重要的作用, 目前手势识别已应用到手语识别、智能监控、到虚拟现实等各个领域,手势识别的原理都是利用各种传感器(例如红外、摄像头等)对手部的形态进行捕捉并进行建模,形成一个模型信息的序列帧,而后将这些信息序列转换为机器能够识别的相对应指令(例如打开、切换菜单、移动等)来完成控制。 采用Python的集成开发环境Pycharm进行本次课程设计,在Pycharm中进行需要库(模块)的下载,调取电脑摄像头,按帧读取摄像头采集到的头像,形态学处理,图像旋转(由于摄像头采集到的图像是镜像,需要用cv2.flip将摄像头采集到的图像进行处理),选取图片中固定位置作为手势输入,用红线画出手势识别框,基于hsv的肤色检测,进行高斯滤波,找出轮廓,求出图像中手势的凹凸点,手指间角度求取。

努力学习前端的小陈

ROS-CV-ImageConverter:将ROS图像转换为OpenCV(cv :: Mat)类型的图像

ROS-CV图像转换器 依存关系 cv_bridge(ROS软件包)

Willis Wang

计算机视觉图像处理-CV2与图像插值算法

用最近邻插值与双线性插值原理完成图像缩放 最近邻插值,是指将目标图像中的点,对应到源图像中后,找到最相邻的整数点,作为插值后的输。缺点:使用最近邻插值算法处理图像放大时,在图象中可能出现明显的块状效应 双线性插值,在两个方向上做三次线性插值。使用双线性插值算法处理图像放大时,在图象中可能出现马赛克 代码 import cv2 img = cv2.imread(’./xiabang.jpg’, cv2.IMREAD_UNCHANGED) #缩放比例 scale_percent = 0.3 width = int(img.shape[1] * scale_percent) height = int

weixin_38697274

基于水平集CV模型的图像分割(Matlab代码)

基于水平集CV模型的图像分割(Matlab代码),全套代码

小宇QAQ

导向滤波(guide_filter)的python实现

导向滤波(guide_filter)的python实现,可以结合暗通道;理论实现比较好的图像去噪效果。

zachzhan_g
返回顶部
易行男·龙大崇
博客等级 码龄8年 34粉丝 8,199原创