OpenCV形态学操作实战:开闭运算去除图像噪点与填充孔洞
最近在做一个元件识别的小项目二值化之后的图像简直没法看背景里全是小米粒一样的噪点目标区域内部还戳着一个个白色孔洞。试过轮廓面积过滤、中值滤波效果都不理想翻出以前整理过的OpenCV形态学笔记把开运算和闭运算组合用起来图像干净得像换了张图。这篇学习笔记就把我当时是怎么选内核、怎么调参、又在哪些场景里踩了坑原原本本记下来给同样被噪点和孔洞折磨的朋友做个参考。1. 遇到噪点与孔洞时为什么第一反应是开闭运算1.1 噪点和孔洞到底长什么样先说清楚问题本身。这里说的噪点不是那种彩色图上的雪花噪声而是灰度图经过阈值分割后出现在背景区域的小块前景像素。它们可能是传感器热噪声、压缩伪影、灰尘也可能是光照不均匀导致阈值把一小片背景误判成了目标。孔洞则相反是前景目标内部夹杂的一小块背景像素常见于目标表面反光、物体本身有纹理、或者二值化阈值选得偏高偏低的情况。这两种东西单独看都不大三五像素到几十像素都有但带来的麻烦是连锁的。做轮廓检测时每一块噪点都是一个独立的轮廓算法会分不清哪个是真正的目标做连通域分析时孔洞会让目标的面积统计出现偏差还会让重心位置计算完全跑偏。最头疼的是噪点和孔洞的数量不稳定一个项目里可能同时出现几百个你不可能手工去删。1.2 为什么单纯靠轮廓过滤解决不干净很多人的第一反应是轮廓面积过滤也就是把像素面积小于某个阈值的轮廓直接丢掉。这个方法对付背景噪点确实有效但有两个死角。第一孔洞在轮廓的内部轮廓area计算的是外层边界的面积孔洞根本不体现在面积上你过滤不掉它第二噪点如果和真正的目标挨得太近或者目标本身有凹凸不平的边界面积过滤会把目标的真实边界一起误杀出现把目标腰斩的诡异结果。我自己当时也是先把所有轮廓画出来用面积排序结果大目标旁边的小凸起被当成噪点删了目标形状变得歪歪扭扭。后来才意识到这类问题本质上是前景区域里混进了不该有的小块要用的是形态学操作而不是轮廓后期处理。开运算和闭运算恰好就是干这个的它们不关心你怎么定义噪声只关心结构元素能不能覆盖住这些小扰动所以普适性高得多。2. 开运算和闭运算到底在像素层面做了什么2.1 腐蚀与膨胀一切形态学操作的起点OpenCV里的形态学操作根子上都是腐蚀和膨胀的组合。腐蚀erode的规则是用结构元素在图像上滑动只有当结构元素覆盖的区域内所有像素都是前景255时中心像素才保留为前景否则变成背景0。相当于只要有一粒沙子是空的整个区域就不要了。效果是前景边缘向内收缩亮色区域变小细长的连接被断开孤立的亮点直接被抹掉。膨胀dilate恰好相反结构元素覆盖的区域里只要有一个像素是前景中心像素就变前景相当于只要沾一点边就扩展。效果是边缘向外扩张小孔被填上断裂的线条被连接。这两个操作单独用都会改变目标尺寸。腐蚀让目标瘦一圈膨胀让目标胖一圈。但把它们按顺序组合起来就有了有意思的性质。2.2 开运算为什么能去噪点闭运算为什么能补孔洞开运算的定义是先腐蚀再膨胀。腐蚀阶段前景里那些细小凸起和孤立噪点会被直接删掉因为结构元素盖过去时噪点周围全是背景根本满足不了全覆盖的条件主体目标也会瘦一圈。但紧接着的膨胀阶段会把主体目标重新扩张回接近原来的尺寸。于是最终结果就是大目标基本恢复原样小噪点却因为腐蚀阶段就消失了膨胀也没能把它们复活。闭运算的定义是先膨胀再腐蚀。膨胀阶段目标内部的小孔洞会被周围的前景像素填满因为孔洞里只要有一点旁边的前景扩展进来整个区域就被覆盖了目标会胖一圈。紧接着的腐蚀阶段又把胖出去的部分收回来。于是最终结果目标尺寸恢复孔洞被填平。这就是顺序的意义所在。先腐蚀后膨胀是先删除再恢复删除的小东西回不来先膨胀后腐蚀是先补丁再复原补上的坑被保存下来。顺序一颠倒效果就完全相反甚至起到反作用。2.3 用日常场景理解这两个操作我把开运算理解成一块橡皮擦。你想擦掉纸上的一小团笔迹但是如果用力过猛会把整行字都擦糊于是你只擦掉那些独立的小墨点再用细笔把原来字体的轮廓补一补。闭运算更像补墙用的原子灰墙面有坑洞你拿灰填上去干透了再打磨平整坑没了墙体厚度也没变厚。在实际使用中这句话可以翻译成一句经验背景上有杂点用开运算目标内部有空洞用闭运算。这是最本能的用法但等你深入一点就会发现噪点和孔洞通常同时存在所以最常见的手段是开闭组合而不是只做一个。3. 实战代码一套可直接抄的开闭运算处理流程3.1 环境准备与图像预处理我用的是Python OpenCV版本没有特殊要求3.4以后都支持这些接口。需要先准备一张测试图我用示例代码生成一张带噪点和孔洞的人工图像这样效果对比一目了然。真实项目中预处理基本是固定的套路读图、转灰度、高斯模糊、阈值分割。import cv2 import numpy as np import matplotlib.pyplot as plt # 生成一个简单的测试图一个白色矩形目标加上大量噪点和孔洞 img np.zeros((300, 400), dtypenp.uint8) img[100:200, 150:250] 255 # 撒噪点背景白色小点 for _ in range(300): x np.random.randint(0, 400) y np.random.randint(0, 300) img[y, x] 255 # 挖孔洞前景内部黑色小点 for _ in range(200): x np.random.randint(150, 250) y np.random.randint(100, 200) img[y, x] 0这里有个容易被新手忽略的点真实图像在做形态学操作之前一定要先转成二值图。你可以直接用cv2.threshold也可以cv2.Canny输出边缘图。形态学操作对灰度值本身不敏感它只看这个像素是不是非零如果你把一张灰度图直接丢进去非零像素算前景零像素算背景效果往往比二值化之后差很多后面会专门讲。3.2 开运算清理背景噪点核心函数是cv2.morphologyEx第一个参数是图像第二个参数是操作类型比如cv2.MORPH_OPEN第三个参数是结构元素内核。kernel cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) opened cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)用着是简单但你需要知道自己做了什么。这里结构元素是5x5的矩形意思是凡是尺寸小于等于5x5的独立前景小块都会被当成噪点删除。对于上面代码生成的随机噪点大部分单像素噪点在腐蚀阶段就被删了但那些刚好凑成小团的噪点可能残留所以迭代次数和内核大小要覆盖住最大噪点尺寸。如果噪点明显可以增大内核或者增加迭代次数。但要小心开运算的副作用是让目标的锐利边角变圆润迭代次数越多磨圆越明显。3.3 闭运算填补目标孔洞closed cv2.morphologyEx(opened, cv2.MORPH_CLOSE, kernel)这一步的作用是把前景内部那些黑色孔洞填上。原理上膨胀时孔洞被周围像素覆盖腐蚀后虽然退回原始边界但孔洞区域已经被前景占领不会变回去。这里的注意事项是孔洞尺寸不能比结构元素大太多否则膨胀一次填不满。如果你发现孔洞太大有几个选项增大内核、增加迭代次数、或者用多重膨胀再腐蚀。但要记住闭运算对目标外部的影响是让边界变得平滑如果内核太大会把两个本来分开的目标黏连在一起反而制造新问题。3.4 开闭联用的标准流水线实际项目里背景噪点和内部孔洞往往同时存在正确的顺序是先开后闭。先开运算把背景清干净再闭运算把目标内部填实。kernel5 cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) result cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel5) result cv2.morphologyEx(result, cv2.MORPH_CLOSE, kernel5) plt.subplot(1, 3, 1) plt.imshow(img, cmapgray) plt.title(原图) plt.subplot(1, 3, 2) plt.imshow(opened, cmapgray) plt.title(开运算) plt.subplot(1, 3, 3) plt.imshow(result, cmapgray) plt.title(开闭) plt.show()为什么是先开后闭而不是反过来想象一下如果先闭运算背景里的噪点在膨胀阶段会被放大变得更显眼然后再用开运算虽然能删除一部分但被放大后的噪点块增加了删除难度搞不好要更大的内核然后目标也被磨得更厉害。先开后闭噪点先去掉了闭运算只专注于内部孔洞整体计算量也更小。这一步结束后图像已经干净了但你会遇到下一个问题到底内核大小该取多少迭代几次用什么形状的内核这不是玄学而是有章可循的。4. 结构元素选型影响效果的从来不只是开还是闭4.1 内核大小比噪点大一点点就够了判断内核大小的一个实用方法是先测量最大噪点的尺寸。具体操作是先把图像二值化找出所有轮廓统计每个轮廓的宽高取最大那个噪点的宽高作为参考。内核至少要比最大噪点大一圈比如噪点最大是3x3那就选5x5如果是5x5就选7x7。这里有一个平衡内核太小噪点清不干净内核太大目标被严重腐蚀边界细节丢失。理论上结构元素的尺寸应该大于目标噪声的尺寸小于目标物体最小部件的尺寸。举个例子如果目标是个人形手指宽度只有10像素那么内核肯定不能选20x20否则手就消失了。这时候应该选择近似手指宽度一半左右的内核丢掉小噪点的同时保住细节。4.2 迭代次数不是越高越好很多教程喜欢写迭代3次效果更好这个说法有误导性。迭代次数的作用相当于把内核应用多次如果内核是5x5迭代两次实际上等效于一个更大的结构元素但它们的形状特征不完全一样。多次迭代会让腐蚀膨胀的累计效应变大目标边缘被反复打磨出现明显的圆角化。我建议初始迭代次数就定为1次。先跑一遍看效果如果残留噪点较多优先增大内核尺寸而不是猛加迭代次数。只有在目标本身比较规则、不需要精细边界的时候才考虑迭代2次。迭代3次及以上多数情况下意味着你设计内核的思路有问题应该重新审视尺寸而不是靠次数硬撑。4.3 矩形、十字、椭圆三种内核形状的区别OpenCV提供了MORPH_RECT、MORPH_CROSS、MORPH_ELLIPSE三种结构元素。它们各有偏向内核形状特点适合场景矩形四四方方覆盖面积大删除能力强常规噪点和孔洞大多数任务首选十字只有水平和垂直方向对角线区域不覆盖细长的直线、笔画类目标椭圆边缘圆滑删除能力弱一点目标边界本来就比较圆润的物体十字形内核有个特殊场景处理文字图像中的笔画断裂。比如识别印刷体字母时字符的横竖笔画很细矩形内核的转角容易把笔画连接处误判为噪点十字形内核沿着笔画方向滑动能在保留笔画的同时把孤立的墨点清掉。不过大部分普通图像任务直接用矩形内核就行别过早陷入形状纠结。4.4 我的选择流程我会先做一次5x5矩形内核的开运算保存结果再用同样的内核做闭运算。如果背景还有残留增大到7x7再试。如果7x7导致目标变形就退回5x5但增加迭代次数到2次通常能兼顾干净度和形状。孔洞如果在闭运算后还有小坑我会单独对闭运算再跑一次但此时会换用椭圆内核减少对矩形边角的损伤。选好内核之后还需要验证效果。这里有个很有用的技巧把处理前后的图像做按位异或得到差异图差异图上亮的地方就是被改动过的区域。如果改动区域集中在已知噪点附近说明操作到位如果改动区域遍布整个目标边界说明内核太大了。5. 真实踩坑记录这些情况别指望开闭运算救你5.1 踩坑一直接把灰度图丢进morphologyEx这是我第一次用形态学时犯的错。拿到一张灰度图噪声明显想着直接cv2.morphologyEx(gray, cv2.MORPH_OPEN, kernel)完事。结果输出的图像整体变暗噪声没减多少目标内部的灰度也乱了。原因其实很简单灰度图不是二值图形态学操作的判定标准是非零像素还是零像素灰度值不是255的浅灰色像素也被当成前景这导致腐蚀和膨胀作用于灰度梯度上而不是作用于噪声块上。正确做法是先阈值分割把图像严格转换成只有0或255的矩阵再做形态学。如果必须要在灰度图上处理请考虑中值滤波或双边滤波而不是形态学。5.2 踩坑二内核过大目标被磨平了有次处理一个PCB板图片走线的宽度大概15像素板上有些焊盘反光形成的噪点大概6像素左右。我图省事直接用了15x15的大内核噪点确实清光了但走线全部断成一截一截细细的引线直接消失。回头看正确的做法是把内核限制在噪点尺寸之上、最小部件尺寸之下。PCB走线宽度15像素噪点6像素那就选7x7内核这样在删除噪点的同时走线内部虽然被腐蚀掉一层从15像素变成15-411像素但后续闭运算的膨胀阶段会补回来一部分最终结果仍然可用。如果目标本身就是“窄长条”结构更要谨慎评估宁可用小内核迭代两次也不要用一次大内核。5.3 踩坑三闭运算补不上大孔洞闭运算补孔洞的本质是膨胀把孔洞周围的前景扩大覆盖住孔洞。但孔洞如果比结构元素大很多膨胀只能把孔洞边缘填充一部分中心区域仍然是黑的腐蚀后这部分又变回孔洞。这时候你会发现闭运算做了等于没做。解决办法有两个层次第一增大内核或增加迭代次数但孔洞大到目标面积的一半时增大内核会导致目标外部严重扩张把其他小目标黏连起来第二改用轮廓填充找到所有孔洞的轮廓然后用cv2.drawContours或fillPoly直接填充。实际工程中如果孔洞形态不规则且很大我会采用后者先找外部轮廓再在内部找孔轮廓标记后直接填255。形态学在这个场景下只是辅助手段别死磕。5.4 踩坑四噪点黏在目标边缘上开运算后留下毛刺开运算对孤立噪点效果很好但如果噪点紧贴着目标边界比如一个3像素的白色噪点刚好骑在目标边缘上开运算在腐蚀阶段会把目标边缘和噪点一起腐蚀掉噪点虽然没了但目标的边界也会出现一个小凹陷。膨胀阶段虽然补回一部分但凹陷处的形状已经被抹成圆角视觉上就像毛刺被磨平了可轮廓数据却发生了变化。这种场景下我建议先做一次轻微的闭运算把黏连噪点融进目标再做开运算清理真正的孤立噪点。这个顺序和标准流程相反但对付黏连噪点很有效。另一种思路是先用大一点的矩形内核做膨胀让噪点彻底变成目标的一部分再通过后面的阈值分割重新划分边界不过这就得看具体项目的容忍度了。5.5 踩坑五开闭运算无法解决的伪孔洞有一种情况特别迷惑人目标内部有一块和背景颜色相近的区域二值化后它被误判成背景看起来像孔洞。形态学闭运算大概率填不上这块区域因为它的面积太大而且它的边界和周围目标像素的灰度差异本来就小膨胀腐蚀操作根本区分不了它是真孔洞还是原目标的一部分。处理这种伪孔洞需要回到上游调整阈值分割策略比如改用自适应阈值、局部Otsu或者HSV色彩空间转换。形态学是预处理的下游工具不是万能的语义分割器。记住这一点能省掉很多无用功。6. 进阶玩法把形态学操作变成噪声分析的放大镜6.1 顶帽和黑帽找到噪声到底在哪开运算和闭运算不只是用来清理它们还能帮你定位问题区域。顶帽运算MORPH_TOPHAT是原图减去开运算结果得到的是被开运算删除的部分正好对应背景噪点。黑帽运算MORPH_BLACKHAT是闭运算结果减去原图得到的是被闭运算填补的部分正好对应孔洞。这个技巧在调参阶段非常有用。调内核时我会先用顶帽看一下噪声的分布范围如果顶帽结果里噪声块很明显说明内核偏小或者形状不对再切换到黑帽看孔洞的位置判断它们是否真的被填满。把它当成诊断工具使用比直接肉眼看原图高效得多。6.2 结合连通域分析更进一步开闭运算处理完的图如果背景噪点特别密集、被开运算磨平后残留了一些较大的块这时候可以再加上连通域筛选来兜底。用cv2.connectedComponentsWithStats统计每个连通域的宽、高、面积把面积明显小于目标的区域直接置零。典型的组合是开运算清小噪点→ 闭运算填小孔→ 连通域筛选清残留大噪点→ 轮廓提取拿到最终目标。这一步处理完的图像可以直接用于后续的测量、识别或模板匹配整体稳定性比单独形态学好很多。6.3 形态学操作与中值滤波的取舍有人会拿中值滤波来对比说它也能去噪点。从效果上讲确实有交叉但两者的原理完全不同中值滤波在灰度图上有效用邻域中值替换中心像素对付脉冲噪声也就是黑白椒盐噪声效果极好形态学开闭运算在二值图上有效核心是几何尺度的删除和填补。如果你最终要做的是边缘检测或者轮廓提取我推荐形态学因为它能严格保持二值状态后续处理逻辑清晰。如果只是做灰度图像的预处理想保留更多原图细节中值滤波会更温和。最怕的是在灰度图上先用开运算又觉得效果不对再用中值滤波两个操作叠加后图像细节全无既浪费算力又得不到好结果一开始就要明确自己到底处理什么层级的图像。6.4 一个更完整的结束动作每次做完开闭运算后我还会做一次cv2.getStructuringElement之后的平滑验证通常是对比处理前后的轮廓数量。具体做法处理前统计整张图的轮廓数处理后再次统计正常情况下轮廓数应该大幅下降而且大目标的轮廓稳定存在。如果轮廓数上升了说明内核选择导致目标碎裂需要回退参数。我自己在项目里常用的收尾代码大概是def clean_binary_image(binary_img, open_size5, close_size5): kernel_open cv2.getStructuringElement(cv2.MORPH_RECT, (open_size, open_size)) kernel_close cv2.getStructuringElement(cv2.MORPH_RECT, (close_size, close_size)) cleaned cv2.morphologyEx(binary_img, cv2.MORPH_OPEN, kernel_open) cleaned cv2.morphologyEx(cleaned, cv2.MORPH_CLOSE, kernel_close) return cleaned这套流程在多个项目里都验证过效果至少在常见的阈值分割后的图像上能解决80%以上的噪点和孔洞问题剩下的那20%通常需要回到采集端和灯光端去优化。最后分享一个小技巧当你觉得开闭运算效果还不如预期时别急着换大内核先原样输出一下中间结果。开运算之后保存一张图闭运算之后保存一张图对比两张图你就能准确判断问题出在哪个阶段。形态学这东西只有当你亲眼看到腐蚀和膨胀各自对图像做了什么才能真正理解参数的意义。多留中间结果比多翻几次文档有用得多。

相关新闻

AI辅助英文润色实战:从生硬中式英语到地道表达

AI辅助英文润色实战:从生硬中式英语到地道表达

写英语作文,最折磨人的往往不是没思路,而是思路齐了,落笔出来总带着一股“中译英”的生硬感。我帮身边的同学改过不少作文,也用好写作AI这类工具做过很多轮对比,越来越体会到:AI辅助英文润色,本…

2026/10/17 7:33:10 阅读更多 →
旧电脑变公网服务器:端口映射与中转转发实战指南

旧电脑变公网服务器:端口映射与中转转发实战指南

1. 从一台闲置电脑到公网节点:整体思路与方案选型很多人手里都有退役的旧笔记本或者攒机剩下的配件,放着吃灰可惜,卖掉又不值几个钱。一个很自然的想法就冒出来了:能不能把这台机器变成一台外面也能访问的服务器?比如放…

2026/10/17 7:33:10 阅读更多 →
iOS视频列表自动播放实践:UITableView与AVPlayer的完整工程拆解

iOS视频列表自动播放实践:UITableView与AVPlayer的完整工程拆解

简介:针对iOS开发者在列表滚动场景中实现视频播放的需求,这份资源提供了可运行的Xcode工程示例。工程参考网易视频与今日头条的交互方式,演示在UITableView中嵌入播放器、点击cell切换播放状态、自动暂停离开屏幕的视频,以及支持全…

2026/10/17 7:32:10 阅读更多 →

最新新闻

GraphCoT-VLA:融合场景图与思维链的机器人空间理解与意图推理框架

GraphCoT-VLA:融合场景图与思维链的机器人空间理解与意图推理框架

有人说,做机器人最让人头疼的不是电机、不是结构,而是“它听不懂人话”。你明明让机械臂“把桌上那个东西拿过来”,它却在两个杯子之间犹豫,甚至直接抓了旁边的水壶。这背后缺的不是视觉能力,而是两个东西:…

2026/10/17 8:13:18 阅读更多 →
Kubectl高效命令实战:从入门到生产环境故障排查

Kubectl高效命令实战:从入门到生产环境故障排查

1. 命令体系的第一性原则:先理解 kubectl 的设计逻辑很多朋友接触 Kubernetes 时,第一反应就是背命令。我见过不少同事把 kubectl 的常用命令抄在便签纸上贴显示器旁边,背了一周还是搞混create和apply的区别。其实 kubectl 没这么难记&#x…

2026/10/17 8:13:18 阅读更多 →
基于凸优化与张量分解的多通道信号去噪Matlab代码实现

基于凸优化与张量分解的多通道信号去噪Matlab代码实现

简介:这份Matlab代码资源面向从事高维数据分析、信号处理与机器学习的研究者和工程师,聚焦于用凸优化方法实现张量分解,从而完成数据恢复与去噪任务。张量作为矩阵向高维的推广,能有效刻画图像、视频、多模态数据的内在结构&#…

2026/10/17 8:13:18 阅读更多 →
PyTorch图像分类预测全流程:从加载权重到生成提交CSV的实战指南

PyTorch图像分类预测全流程:从加载权重到生成提交CSV的实战指南

训练跑通只是第一步,真正检验模型价值的是它在没见过的图片上能不能给出正确预测。这篇接着前面的猫狗大战项目,把“预测模型结果”这一步完整拆开来讲:从测试集DataLoader怎么写,到加载保存好的CNN权重,再到批量输出预…

2026/10/17 8:13:18 阅读更多 →
软件项目计划书撰写全攻略:七大章节与落地模板

软件项目计划书撰写全攻略:七大章节与落地模板

1. 先想清楚:计划书到底解决什么问题信息化软件系统项目建设计划书,它到底是干什么的?简单说,就是给一个软件系统项目从“想法”到“落地”之间画一张相对完整的地图。作为项目经理、产品经理或者技术负责人,我们几乎每…

2026/10/17 8:13:18 阅读更多 →
2026技术暗流:AI Coding、智能体、开源与具身智能的工程落地

2026技术暗流:AI Coding、智能体、开源与具身智能的工程落地

1. 从一份 AI 日报里,我看到了 2026 年技术圈真正的暗流每天早上花二十分钟扫一遍 AI 日报,是我保持了两年多的习惯。2026 年 9 月 12 日这一期,表面上看还是那些熟悉的面孔——AI Coding、智能体、开源、具身智能,四个词翻来覆去…

2026/10/17 8:12:18 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →