从零搭建智能管道监测系统:传感器选型、物联网架构与泄漏检测实战

物联网传感器管道监测 本内容遵循CC 4.0 BY-SA版权协议
胡大渔 胡大渔 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要

SmartTube这个名字,乍一听会让人联想到视频播放器,但在我这儿,它其实是我折腾了大半年的一套智能管道监测系统项目代号。简单说,就是给小区供水管道、工业循环水管网这类“地下血管”装上眼睛和大脑,实时盯着压力、流量、泄漏这些关键指标。这篇博文就围绕SmartTube这个项目,把我从硬件选型、传感器部署到软件平台搭建、算法调试的完整过程记录下来,尤其会聊那些常规文档里不会写的坑和取舍逻辑,希望能给正在做物联网监测、智慧水务或工业管道智能化改造的朋友一份可直接参考的实战手册。

这套系统适合谁来参考?如果你手头有老旧管网改造需求、正在做设备预测性维护,或者纯粹想入门工业物联网,想知道传感器数据到底怎么变成管理价值,那 SmartTube 过程中的思路和代码框架对你会有直接帮助。

1. 项目整体设计与思路拆解

1.1 管道智能化的真实痛点

传统管道管理方式,基本靠人工巡检和事后维修。管道埋在地下或者包裹在保温层里,漏点难发现、压力异常难追溯。我参与过的几个项目里,最常见的问题有三个:一是泄漏发现滞后,一个小漏点跑上几个月,水损和能耗损失都是肉眼可见的成本;二是在线监测设备成本高,过去一套进口在线监测系统动辄几十万,中小型项目根本用不起;三是数据孤岛严重,即便装了仪表,数据也只能现场抄录,没法远程预警。

SmartTube 的出发点就是解决这三个问题:用低成本传感器组合替代昂贵设备,用无线物联网传输替代人工抄录,用边端算法直接在现场完成异常判断,而不是把所有数据都堆到服务器上事后分析。

1.2 系统架构的整体分层

整个 SmartTube 的架构,我按功能拆成了四层,这样设计和调试时思路最清晰。

感知层是现场的各种传感器,包括压力变送器、超声波流量计、温度传感器,以及我后期加装的振动传感器。传输层采用了两种方式搭配:靠近网关的设备用 RS485 总线有线连接,分散的监测点用 NB-IoT 无线模块直接上云,这样既保证了关键点位的数据实时性,又控制了布线成本。平台层部署在云服务器上,负责数据接收、存储、规则引擎报警,对外提供 API 接口。应用层则是给不同角色使用的界面,运维人员看大屏监控,管理人员看报表分析,我给自己留了一个调试用的命令行工具。

这个分层设计看起来简单,但实际落地时每一层都有很多细节要抠。比如感知层的传感器量程选择、防护等级、供电方式,传输层的数据帧格式、上报频率,平台层的数据库选型和数据保留策略,这些都是在项目推进过程中反复调整后才定下来的。

1.3 为什么选择自建而非采购成品

项目立项时我也调研过市面上的成品方案。坦白说,成品方案在稳定性和售后上确实有优势,但问题也很明显:一是价格高,一个监测点的综合成本(含安装调试)通常要两万以上;二是扩展性差,想接入自己已有的系统或者按自己的算法逻辑做判断,几乎不可能,只能被绑在厂商的平台上;三是数据主权,管网数据一旦全部放到第三方平台,后续想切换或者做二次开发,难度极高。

自建路线虽然前期投入精力大,但边际成本很低。一个监测点的硬件成本可以控制在三千以内,软件部分完全自主可控。更重要的是,当我想调整泄漏判断算法时,可以随时修改和部署,不需要等厂商排期。这个灵活性在后续的实际调试中发挥了巨大作用,我们前前后后调整了五版算法,如果用的是成品方案,这种迭代速度是不可想象的。

2. 核心硬件选型与部署实操

2.1 传感器选型的核心参数考量

硬件选型是整个 SmartTube 项目的基石,选错了后面全白搭。我在传感器选型上遵循了几个原则:一是量程要留足余量,比如管道正常工作压力是 0.4MPa,压力变送器我选了 0-1.0MPa 的量程,避免压力波动时超出量程损坏传感器;二是输出信号要统一,全部选用 4-20mA 电流环输出的变送器,因为电流环抗干扰能力强,传输距离远,而且断线检测非常方便——线路断了电流直接归零,一眼就能发现。三是防护等级必须 IP67 以上,尤其是安装在地下管沟里的传感器,潮湿环境对电子元件的腐蚀非常严重。

压力变送器我最终选用的是扩散硅芯体的工业级产品,精度等级 0.5%FS,长期稳定性好,价格大约在六百元左右。流量计部分考虑到成本和安装便利性,选择了外夹式超声波流量计,不需要破管安装,两个探头贴在管道外壁就能测量。虽然精度比插入式略低,大约在 ±1.5% 左右,但对于泄漏监测这个场景完全够用。温度传感器相对简单,PT100 铂电阻配上变送器模块即可,主要是用来做流量补偿计算。

2.2 供电与布线的教训

供电方式是硬件部署中踩坑最多的环节。最初我设计的是集中供电方案,每个监测点拉一条 220V 电源线。但实际勘察后发现,管沟内拉市电线路涉及审批和安全规范,而且距离远的地方压降明显,施工成本远远超出了预算。

后来改成了锂电池加太阳能板的供电方案。每个监测点配置一块 20W 太阳能板和 20Ah 锂电池,配合低功耗的 NB-IoT 模块,晴天充一天电可以维持五天以上的阴雨天气运行。实际运行下来,一个最大的教训是:锂电池在低温环境下放电容量会大幅缩水。北方冬天零下十几度时,电池容量可能只有标称值的六成,系统续航时间明显缩短。我的解决方案是在锂电池外面包裹了保温棉,同时把充电管理电路的低温截止电压调低了一些,牺牲一点电池寿命换取系统在极端天气下的可用性。

RS485 总线布线时还有几个细节必须注意:屏蔽层必须单端接地,不能两端都接,否则会产生地环路干扰;总线两端要各加一个 120 欧姆匹配电阻;手拉手拓扑连接,绝对不能星型连接。这些规范在 Modbus 协议文档里都有说明,但现场施工时工人往往图省事,我专门写了一份布线规范贴在控制箱盖内侧,每次巡检时重点检查这几项。

2.3 部署点位的选择逻辑

监测点位的选择直接决定了数据的价值密度。我总结了一套“三优先”的布点原则。

优先选择管网的关键节点铺设,比如主干管与支管的连接处、分区计量表的上下游位置。这些位置是流量变化最敏感的地方,一旦下游有异常用水或者泄漏,这些点位的流量数据会最先产生异常波动。优先选择历史泄漏多发区域,比如老旧管道接口较多、地质条件容易沉降的路段。这些区域是问题高发区,监测密度高一些,能在第一时间捕捉泄漏苗头。优先选择施工方便的位置,尽量在阀门井、水表井这些已有构筑物内部安装设备,避免新增土建施工。这既是成本考虑,也是因为现有井室内部环境相对稳定,设备使用寿命更长。

我在项目里实测下来,一个典型的分区计量监测点,如果上游和下游各布置一个压力传感器,再加上一个流量计,基本就能做到分区内的水平衡分析,也就是通过比较进出总量来判断是否存在暗漏。

3. 软件平台与核心算法实现

3.1 数据采集与传输链路设计

SmartTube 的软件部分,我选择了物联网领域比较主流的组合方案。设备端用 C 语言开发固件,负责传感器数据采集和边缘计算;传输层使用 MQTT 协议接入 EMQX Broker,选择 MQTT 而不是 HTTP 的原因很简单:MQTT 是长连接、低开销的发布订阅模式,非常适合大量设备持续上报的场景,而且支持遗嘱消息,设备异常掉线时服务器端能第一时间感知;平台端使用 Java Spring Boot 框架,负责设备管理、数据持久化和 API 服务;数据分析部分则用 Python 脚本独立运行,定时从数据库拉取数据做深度分析。

上行数据帧格式我设计得比较精简,JSON 格式,大约长这样:

JSON
{
"dev_id": "ST-001",
"ts": 1703062800,
"pressure": 0.412,
"flow": 2.37,
"temp": 16.8,
"batt": 86,
"signal": -67
}

其中 ts 是 Unix 时间戳,signal 是 NB-IoT 信号强度。上报频率方面,正常状态下设备每五分钟上报一次,检测到压力骤降时自动切换为每十秒一次的紧急上报模式。这个动态调整逻辑很关键,既保证了异常时数据的实时性,又避免高频率上报长时间消耗功耗和流量费用。

3.2 泄漏检测的三种算法模型

SmartTube 的算法部分是我投入精力最多的地方。我先后尝试了三种泄漏检测算法,各有优劣,最终是组合使用才达到比较理想的准确率。

第一种是指标阈值法。对每个监测点设定压力和流量的正常波动区间,超出区间即触发报警。这个方法最简单,但是误报率也最高。管道正常运行时因为用水高峰和低谷,压力和流量本身就有明显波动,单纯靠固定阈值很难区分正常波动和异常工况。比如我遇到过的情况是,某工业园区夜间某个厂房偷偷大量用水,流量瞬间增大三倍,系统误报为泄漏,点开实时曲线一看才发现是正常生产用水。

第二种是压力梯度法。利用泄漏点上下游压力同时下降、且下降幅度与距离成反比的规律,通过相邻监测点的压力变化趋势来辅助判断。这个方法比阈值法可靠很多,因为正常用水时压力变化一般比较平缓,而泄漏时的压力跌落往往在几十秒内就非常明显。我通过连续滑动窗口计算压力变化速率,当窗口内压力下降速率超过每秒 0.005MPa 且持续超过三十秒时,初步判定为疑似泄漏事件。

第三种是流量平衡法。在管网的进出水端各装一块流量计,正常情况下进水流量应该等于出水流量加上系统损耗。两者偏差超过设定的百分比后,说明管网内部存在异常水量消耗。这个方法准确率最高,但是对计量设备数量和精度要求也高。完整的管网分区计量需要大量流量计,成本不菲。我的处理方式是:只在最关键的几个分区部署双向流量监测,其余点位依靠压力梯度法做前置预警。

最终的算法框架是三层级联判断。第一层压力梯度法快速捕捉压力突变,触发初步预警;第二层流量平衡法核实是否存在水量异常,排除正常用水波动;第三层由人工查看实时曲线确认,冻结证据并下发工单。三层判断把误报率从最初阈值法的百分之七十多降到了百分之十五以内。

3.3 告警规则与通知链路

告警通知链路我分了三个级别。一级预警对应压力异常波动,通过企业微信机器人推送到运维群里,由当班人员关注后续趋势;二级报警对应疑似泄漏事件,除了群里推送,还会自动创建工单并电话语音通知值班负责人;三级事件对应确认泄漏,系统自动切换对应区域的阀门策略(如果接入了远程控制阀)并通知抢修团队集合。

企业微信群机器人实现起来非常方便,就是一个 Webhook 地址,往里面 POST 一段 JSON 就能把消息推送到群里。我封装了一个小的告警服务:

PYTHON
import requests
import json
 
def send_alert(level, message):
webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
data = {
"msgtype": "markdown",
"markdown": {
"content": f"<font color='warning'>{level}</font>\n> {message}"
}
}
requests.post(webhook, json=data)

这段代码看起来简单,但部署时有一个很容易忽略的点:企业微信机器人有频率限制,每分钟最多二十条消息。如果系统短时间内触发了多个点位的报警,可能造成消息丢弃。我的处理方式是给告警服务加了一个简单的队列和合并逻辑,同一区域五分钟内的重复报警合并成一条,信息密度更高,也不会刷屏。

3.4 数据可视化与运维大屏

数据可视化部分,最初我用的是 Grafana 加时序数据库的组合。Grafana 的开源面板功能很强,各种图表组件都有现成的,配置一个简单的管网总览面板只需要半天时间。但 Grafana 的灵活度在定制化场景下还是受限,尤其是我想做一个管网拓扑图样式的大屏,在 Grafana 里实现起来非常别扭。

后来我改成用 Vue 加 ECharts 自建了一个简易大屏。ECharts 的 graph 类型可以轻松绘制管网拓扑关系图,每个节点是一个监测点,节点颜色根据状态自动变化:绿色正常、黄色预警、红色报警。配合定时器每三十秒从后端拉取一次最新数据刷新界面,实际展示效果非常直观。大屏左侧是实时数据面板,中间是管网拓扑图,右侧是最近二十四小时的事件列表和趋势曲线,中间底部还有一条滚动播放的告警信息栏。

这个过程给我的经验是:可视化工具的选择要根据项目场景来定。如果只是内部查看数据规律,Grafana 完全够用且效率更高;如果是做面向管理层的展示大屏或者有强定制化需求,自建更合适。两者切换的成本不值得纠结,数据的生产端和存储层保持独立,展示层推倒重来也不伤筋动骨。

4. 实测案例与数据表现评估

4.1 实验管道环境搭建

为了验证 SmartTube 的检测效果,我没有一开始就完全依赖真实管网,而是先在家里后院搭建了一套小型实验管道。管道总长约五十米,采用 PE 管,埋深约四十厘米,中间设置了可调节的模拟泄漏装置,也就是在管道上接了一个带阀门的旁路,打开阀门就能模拟可控流量的泄漏。

监测设备包括两个压力传感器,分别安装在管道两端,以及一块超声波流量计安装在进水端。所有数据通过 RS485 串口汇聚到一块树莓派上,树莓派再通过 WiFi 连接家里的路由器把数据推送到远端服务器。这个实验环境的搭建让我可以用可控的方式制造各种异常场景,反复验证算法的可靠性。

4.2 模拟泄漏检测的完整过程

实验过程中,我记录了多次模拟泄漏的数据曲线。以一次典型的模拟实验为例,管道正常工作流量为每分钟十二升,进出口压力分别为 0.32MPa 和 0.28MPa。在 t+5 分钟时打开了模拟泄漏装置,泄漏流量设定为每分钟一点五升,大约占总流量的百分之十二点五。

传感器数据开始变化的时间点,与理论预期基本一致。泄漏点下游的压力传感器在泄漏发生后的约十五秒内开始出现可观察的下降,三十秒后压力从 0.28MPa 降至 0.26MPa 并趋于稳定。泄漏点上游的压力变化幅度较小,仅下降了约 0.005MPa,这符合压力梯度法的判断逻辑:越靠近泄漏点压力下降越明显。

流量计数据在同一时间段内从每分钟十二升上升到每分钟十三升左右,说明进水流量增加以弥补泄漏造成的水量损失。三个数据源的变化趋势相互印证,算法在泄漏发生后约四十秒内触发了二级报警,误报率为零。这个准确率在真实场景下可能会打折扣,但至少验证了硬件的灵敏度和算法的基本逻辑是成立的。

4.3 长期运行数据与设备稳定性评估

实验管道连续运行了三个月,我统计了一下设备的稳定性数据。数据上报成功率在百分之九十九以上,中间出现过的几次掉线都是因为家庭路由器重启导致的 WiFi 连接丢失,加了一个自动重连机制后解决。电池供电的 NB-IoT 设备在户外测试点运行了两个月,电量从满电降到百分之六十四,按照这个速度,太阳能板不工作的情况下也能坚持约五个月,满足设计预期。

传感器数据的长期漂移情况也值得关注。我每个月用标准压力表校准一次压力传感器,三个月累计漂移最大的一只大约是满量程的百分之零点八,在可接受范围内,但确实需要建立定期校准的运维制度。流量计的长期稳定性比压力传感器差一些,超声波探头长期接触管道表面,如果安装位置的耦合剂风干,测得的流量值会有明显偏差。我的经验是每隔两个月检查一次探头耦合状态,重新涂抹耦合剂。这个细节如果不注意,流量数据的可信度会大打折扣。

5. 常见问题与排查技巧实录

5.1 NB-IoT 信号弱与数据掉线问题

NB-IoT 设备运行中最常见的问题就是信号弱和周期性掉线。我遇到过的情况是,某个监测点安装在半地下的阀门井内,井盖是铸铁材质,对无线信号有很强的屏蔽作用,设备上线后 RSSI 信号强度只有负一百一十左右,勉强能连接但数据上报经常超时。

排查过程分了两步:第一步先确认设备侧没有问题,用串口调试工具手动触发上报,观察模组返回的附着结果和信号值;第二步调整天线安装位置,把外置天线从控制箱里引出来,垂直固定在井壁旁,天线头尽量贴近井盖缝隙位置。这样调整之后,信号强度从负一百一十提升到负九十,数据上报成功率从百分之七十多提升到百分之九十九。

另一个经验是:NB-IoT 模组的核心网注册状态需要留意。设备在弱信号区域首次上电时,注册核心网可能需要几十秒甚至更长时间。我遇到过一次设备反复重启但始终注册不上的情况,排查后发现是 SIM 卡欠费停机了,换了张卡立刻恢复。这个细节很无厘头,但确实是现场排查时容易忽略的一步。

5.2 Modbus 通讯中断与数据错乱

RS485 总线方式连接的仪表偶尔会出现通讯中断或者数据错乱。数据错乱的表现是某个寄存器读出来的值突然变成一个异常大的数或者负数。原因通常有三个:一是总线上的信号反射干扰,特别是在布线距离较长且没有加匹配电阻的情况下;二是设备地址冲突,多台设备被配置成同一个地址,导致应答数据帧互相干扰;三是屏蔽层接地问题,接地不良时会受到周围变频器、电机等设备的电磁干扰。

排查这类问题,我习惯先从最简单的开始验证。用一条短导线把电脑的 RS485 转 USB 模块直接连接到出问题的设备端,用 Modbus Poll 软件手动读寄存器。如果短连接时数据正常,说明问题出在总线上;如果短连接时数据依然错乱,说明设备本身或地址配置有问题。按这个顺序排查,百分之八十的问题都能快速定位。

5.3 供电系统故障与低电量告警

太阳能供电系统最常见的问题是电池亏电导致设备反复重启。设备在低电量状态下频繁开关机,不仅影响数据连续性,还可能造成电池过放损坏。我在代码里加了低电量保护逻辑,当电池电压低于设定阈值时,系统主动进入休眠模式,不再尝试联网上报,直到电池电压恢复到安全值以上才唤醒。这个逻辑牺牲了一点数据连续性,但能有效保护硬件延长设备寿命。

系统的告警逻辑里也加了电池电量和充电状态监测。当电量低于百分之三十时上报电量告警,运维人员就需要去现场检查太阳能板表面是否被遮挡或脏污。我实测过,一片树叶搭在太阳能板上都能让充电效率下降三成以上,所以在秋天落叶较多的户外点位,巡检时需要重点检查太阳能板状态。

5.4 常见问题速查表

整理一份我在现场排查中总结的速查表,方便直接对照处理:

故障现象 可能原因 排查与处理办法
设备不上线 SIM 卡欠费、天线松动、信号覆盖差 检查卡状态、紧固天线接口、看 RSSI 值
数据周期性丢失 上报频率与网络注册周期不匹配 调整 NB-IoT PSM 配置,延长注册保持时间
Modbus 读值异常大/负数 信号反射、地址冲突、屏蔽层接地不良 加匹配电阻、检查设备地址、单端接地
电池电量下降过快 太阳能板遮挡、充电电路故障、低温容量衰减 清洁板面、测量充电电流、增加保温措施
压力值缓慢漂移 传感器老化、膜片结垢 定期用标准表校准,必要时拆洗或更换
流量计显示偏低 耦合剂干涸、探头位置偏移 重新涂抹耦合剂,调整探头位置并固定

6. 经验总结与后续扩展方向

6.1 项目迭代中的几个关键转折点

SmartTube 的项目过程中,有几个技术决策现在看来至关重要,如果当时选错了方向,整个项目的走向会完全不同。

第一个转折点是数据链路从纯云分析转向边端结合。最初的方案是所有传感器数据全部打包上传到云端,由云端算法统一判断。实际运行后发现,有时候网络延迟会导致告警滞后几十秒,对于泄漏这种事,几十秒的差距意味着多流失不少水。后来我在设备端加了轻量级的边缘判断逻辑,当检测到压力骤降时,设备立即通过特殊 MQTT 主题发送紧急告警,不需要等云端算法处理。这个改动让告警响应时间从三十秒级缩短到三秒级,效果显著。

第二个转折点是数据库从关系型换成了时序数据库。最早用的 MySQL,数据量大了之后,按时间范围查询压力曲线的效率变得很差,一条查询要好几秒。迁移到 InfluxDB 之后,同样的查询基本都在百毫秒级完成,而且数据压缩率要高出好几倍。如果现在让我重新选型,我可能会直接用 TDengine 或者 IoTDB 这类国产时序库,性能更好而且社区文档更友好。

6.2 这个系统还能怎么扩展

SmartTube 目前的架构和数据积累,为后续扩展留下了很好的基础。短期可以做的事情包括:接入更多类型的传感器,比如水质监测的浊度、余氯传感器,把单一的水力监测扩展为水质水量综合监测;增加阀门远程控制模块,实现报警后自动隔离泄漏区域,把被动报警升级为主动干预。

中期可以考虑引入机器学习模型做预测性维护。目前采集的数据已经积累了不少正常运行和异常工况的样本,可以用 LSTM 这类时序模型训练泄漏趋势预测,在泄漏尚未造成明显压降前就提前预警。这个方向我在业余时间已经开始实验,初步结果显示小规模数据集上有一定的可行性,准确率大约在八成左右,但还需要更多真实场景数据验证。

远期如果扩大到城市级管网规模,还可以做管网水力模型的在线校准,用实时监测数据不断修正管网模型参数,让模拟结果更加贴近真实工况,为管网优化调度提供决策支持。当然这一步的投入和复杂度都是数量级的提升,但 SmartTube 底层的数据架构已经为这种扩展预留了接口,不需要推翻重来。

6.3 给后来者的一些大实话

最后以一个踩过不少坑的人的视角,给打算做类似项目的朋友一些建议。

成本预算一定要留足余量。硬件成本只是账面上的一部分,安装辅材、调试人工、故障返修、备件储备这些隐性成本往往被低估。我项目实际执行下来,硬件的隐性成本大约是直接采购价的一点五倍,如果这个系数没算进去,项目后期会比较被动。

部署现场永远比实验室复杂。实验室里信号满格、供电稳定、温度适宜,现场可能有弱信号区、供电困难、冬季极寒、夏季高温。所以硬件选型和方案设计阶段就要按最恶劣工况考虑,而不是按理想工况。防护等级、工作温度范围、供电冗余这三个指标,宁可多花点钱也要选高一档的。

数据价值需要持续运营才能体现。SmartTube 上线初期,数据分析带来的价值并不明显,因为规律需要时间积累才能呈现。运行三个月以后,压力曲线、流量曲线的模式逐渐清晰,异常判断的阈值也可以调得更精准。所以这类系统的价值是复利的,坚持运行、持续积累数据,才能真正发挥智能化的威力。

我自己在持续的运营维护中最大的体会是:技术方案永远没有完美的一刻,但每一次故障处理和算法调优,都会让系统离“实用”更近一步。如果你也在折腾类似的物联网监测项目,按照这套思路搭建框架,大概率能少走不少弯路。

相关推荐

基于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
返回顶部
胡大渔
博客等级 码龄10年 53粉丝 5,128原创