傅里叶变换在数字图像处理中的频域滤波实战:Matlab代码与避坑指南
1. 为什么傅里叶变换是数字图像处理的任督二脉刚接触数字图像处理那会儿我对傅里叶变换的态度就俩字发怵。公式一长串积分符号满天飞课本上讲完时域讲频域讲完频域又绕回卷积定理一圈下来脑子里只剩这玩意儿到底能干啥。直到后来做缺陷检测项目被一张布满周期性条纹的工业图像卡了整整三天——空域滤波怎么调都去不干净换成频域一刀切下去世界瞬间清净了。从那以后我才真正理解傅里叶变换不是一门考试科目它是图像处理里的一把手术刀很多在空域里绕来绕去解决不了的问题换到频域就是几行代码的事。这篇内容就是把我这些年用Matlab做傅里叶变换相关项目的经验整理出来。核心围绕三块频谱的物理意义怎么理解、频域滤波怎么设计、以及几个真实场景下的完整代码实现。适合两类人看——一类是正在学数字图像处理课程、被傅里叶变换绕晕的学生另一类是做工程落地、需要在Matlab里快速实现频域处理的开发者。我不打算把推导过程从头证一遍那些课本上都有我要讲的是课本不会告诉你的实操细节频谱图为什么要做对数变换、fftshift到底在移什么、理想滤波器和巴特沃斯滤波器在图像上到底差在哪、为什么你写的频域滤波结果总有一圈振铃。先把结论摆在这傅里叶变换在图像处理里的核心价值是把图像从空间位置的视角切换到变化频率的视角。图像里变化剧烈的地方边缘、噪声、纹理对应高频变化平缓的地方大片背景、渐变对应低频。一旦你接受了这个视角滤波这件事就从在像素邻域里滑动窗口变成了在频率轴上选择保留或抑制哪些成分思路完全不一样。2. 傅里叶变换在图像上的物理意义拆解2.1 从一维信号到二维图像频率到底指什么一维信号做傅里叶变换频率指的是信号随时间变化的快慢这个大家高中物理就接触过。但图像是二维的没有时间这个维度那频率指什么答案是空间变化的快慢。你可以这样理解把图像想象成一张起伏的地形图像素灰度值就是海拔高度。如果某片区域灰度几乎不变比如一面白墙那就是低频区域如果灰度剧烈跳变比如黑白棋盘格的边缘那就是高频区域。二维傅里叶变换做的事情就是把这张地形图分解成无数个不同频率、不同方向的正弦波叠加。低频正弦波负责勾勒大轮廓高频正弦波负责刻画细节和边缘。这里有个很多人一开始会懵的点二维频谱是关于原点共轭对称的。也就是说你只需要看一半的频谱就够了另一半是冗余的。这也是为什么Matlab里做完fft2之后要做fftshift——原始输出的零频率分量在四个角上移位之后才把零频挪到中心符合我们中心是低频、四周是高频的直觉。2.2 频谱图的正确打开方式为什么必须做对数变换我见过太多初学者直接把abs(F)显示出来然后抱怨频谱图一片黑啥也看不见。这不是代码错了是频谱的动态范围太大了。一张普通灰度图直流分量零频的幅度可能是几百万而高频分量的幅度可能只有个位数。你直接线性映射到0-255的显示范围高频部分全被压成0当然一片黑。解决办法就是对数变换F fft2(double(img)); F_shift fftshift(F); spectrum log(1 abs(F_shift));log(1...)里的那个1是为了防止对0取对数。做完对数变换之后频谱图才能同时看清低频和高频的分布。这个技巧几乎所有频域处理的论文和工程代码里都会用但课本上讲得往往一笔带过导致很多人第一次实操就卡在这。注意对数变换只是为了显示真正做滤波的时候用的还是原始的复数频谱千万别把对数变换后的结果拿去做滤波那结果完全是错的。2.3 相位谱比幅度谱更重要这件事这是个反直觉但极其重要的结论图像的相位谱携带了绝大部分的结构信息幅度谱主要携带的是能量分布信息。有个经典实验可以自己复现拿两张不同的图交换它们的相位谱用A的幅度谱配B的相位谱重建你会发现重建出来的图像结构上更像B而不是A。这说明什么说明如果你在做频域处理时不小心破坏了相位信息图像结构就毁了。这个结论对实操的指导意义在于做频域滤波时滤波器必须是零相位的或者说是实偶对称的。理想低通滤波器在频域是个矩形窗它的逆变换是sinc函数在空域是无限延伸的这就会引入振铃。而巴特沃斯滤波器、高斯滤波器这些平滑过渡的滤波器相位特性好得多振铃就轻。这就是为什么工程上很少用理想滤波器不是因为它效果不好而是因为它副作用太大。3. Matlab频域滤波的完整实操流程3.1 环境准备与基础代码框架Matlab做图像频域处理核心函数就那么几个fft2、ifft2、fftshift、ifftshift。但要把它们串成一个正确的流程有几个坑必须提前说清楚。第一个坑数据类型。fft2对uint8类型也能算但精度会出问题而且很多滤波操作会溢出。标准做法是先转成doubleimg imread(test.jpg); if size(img,3) 3 img rgb2gray(img); end img double(img);第二个坑fftshift和ifftshift不是一回事。对于偶数尺寸的矩阵两者效果一样但对于奇数尺寸fftshift和ifftshift是不同的操作。标准流程是fft2→fftshift→ 滤波 →ifftshift→ifft2。很多人图省事滤波后直接ifft2结果图像整体偏移了半个周期还找不到原因。完整的框架代码长这样function output freq_filter(img, H) img double(img); F fft2(img); F_shift fftshift(F); G_shift F_shift .* H; G ifftshift(G_shift); output real(ifft2(G)); output uint8(mat2gray(output) * 255); end这里mat2gray是为了把结果归一化到0-1再转回uint8因为滤波后数值范围可能变了。real取实部是因为理论上逆变换结果应该是实数但浮点运算会引入极小的虚部。3.2 构造频率域滤波器从理想型到高斯型滤波器H的构造是频域滤波的核心。假设图像尺寸是M×N我们需要构造一个同样大小的矩阵每个位置的值代表该频率成分的增益。先建立频率坐标网格[M, N] size(img); u 0:(M-1); v 0:(N-1); idx find(u M/2); u(idx) u(idx) - M; idy find(v N/2); v(idy) v(idy) - N; [V, U] meshgrid(v, u); D sqrt(U.^2 V.^2);这段代码的作用是生成每个频率点到中心的距离D。注意那个find和减法操作是为了把频率坐标从[0, M-1]映射到[-M/2, M/2-1]这样中心才是零频。有了D之后三种常见滤波器的构造就很简单了理想低通滤波器D0 30; H double(D D0);巴特沃斯低通滤波器D0 30; n 2; H 1 ./ (1 (D ./ D0).^(2*n));高斯低通滤波器D0 30; H exp(-(D.^2) / (2 * D0^2));三者的区别用一句话概括理想滤波器是一刀切巴特沃斯是渐进过渡高斯是最平滑过渡。切得越狠振铃越严重过渡越平滑振铃越轻但边缘保留能力也越弱。这是个权衡没有绝对的好坏。3.3 参数D0和阶数n的选择逻辑D0是截止频率n是巴特沃斯滤波器的阶数。这两个参数怎么选是实操中最容易拍脑袋的地方。D0的物理意义是保留半径D0以内的低频抑制D0以外的高频。D0越小图像越模糊D0越大保留的细节越多。但D0不是随便设的它和图像尺寸有关。对于512×512的图像D0取10到50之间比较常见对于1024×1024的图像D0要相应放大。我的经验是先用D0 0.05 * min(M,N)作为起点然后根据效果微调。比如512×512的图像起点就是25左右。n的选择更微妙。n1时巴特沃斯滤波器过渡很平缓接近高斯n越大过渡越陡峭越接近理想滤波器振铃也越明显。工程上n取2到4比较常见既能有效滤除目标频率又不会引入太明显的振铃。实操心得如果你不确定参数可以写个循环把不同D0和n的结果拼成一张大图对比。我早期做项目时经常这么干比一个个试快得多。4. 三个真实场景的完整代码实现4.1 场景一周期性噪声的频域去除这是频域滤波最经典的应用场景。假设图像上叠加了周期性条纹噪声在空域里用均值滤波或中值滤波很难去除干净因为噪声和信号在空间上混在一起。但在频域里周期性噪声表现为频谱上几个孤立的亮点只要把这些亮点抑制掉就行。完整代码img imread(noisy.jpg); img double(rgb2gray(img)); [M, N] size(img); F fft2(img); F_shift fftshift(F); % 显示频谱手动找噪声亮点位置 spectrum log(1 abs(F_shift)); figure, imshow(spectrum, []), title(频谱图); % 假设噪声亮点在(120, 200)和(392, 312)附近 % 构造陷波滤波器 H ones(M, N); notch_centers [120, 200; 392, 312]; notch_radius 8; [V, U] meshgrid(1:N, 1:M); for k 1:size(notch_centers, 1) cu notch_centers(k, 1); cv notch_centers(k, 2); % 注意对称位置也要抑制 D1 sqrt((U - cu).^2 (V - cv).^2); D2 sqrt((U - (M-cu1)).^2 (V - (N-cv1)).^2); H(D1 notch_radius) 0; H(D2 notch_radius) 0; end G_shift F_shift .* H; G ifftshift(G_shift); result real(ifft2(G)); result uint8(mat2gray(result) * 255); figure, imshow(result), title(陷波滤波后);这里的关键点是对称位置也要抑制。因为二维频谱是共轭对称的你只抑制一边另一边还在重建出来的图像噪声只去掉一半。这个坑我踩过当时纳闷为什么滤波后噪声还在后来才反应过来是漏了对称点。陷波半径notch_radius的选择也有讲究太小了噪声去不干净太大了会损伤正常信号。一般取5到15之间具体看噪声亮点的扩散程度。4.2 场景二频域低通实现图像去噪与模糊这个场景适合处理高斯噪声或者需要柔化图像的情况。和空域高斯滤波相比频域高斯低通的效果几乎一样但理解起来更直观——你就是在频率轴上把高频砍掉。img imread(noisy.jpg); img double(rgb2gray(img)); [M, N] size(img); F fft2(img); F_shift fftshift(F); % 构造高斯低通滤波器 D0 40; [V, U] meshgrid(1:N, 1:M); D sqrt((U - M/2).^2 (V - N/2).^2); H exp(-(D.^2) / (2 * D0^2)); G_shift F_shift .* H; G ifftshift(G_shift); result real(ifft2(G)); result uint8(mat2gray(result) * 255); figure; subplot(1,2,1), imshow(uint8(img)), title(原图); subplot(1,2,2), imshow(result), title(高斯低通滤波);D0的选择直接决定模糊程度。我一般会做一组对比D0取20、40、60、80拼成一张图看效果。这样能快速找到去噪够用但细节还没糊的平衡点。注意频域低通和空域高斯滤波在数学上是等价的卷积定理但频域实现有个好处——你可以用任意形状的滤波器不限于高斯。比如你想保留某个特定方向的纹理可以构造椭圆形的滤波器这在空域里就很难直接做。4.3 场景三频域高通做边缘提取高通滤波保留高频、抑制低频结果就是边缘被突出平坦区域变暗。这在缺陷检测、医学影像分析里很常用。img imread(test.jpg); img double(rgb2gray(img)); [M, N] size(img); F fft2(img); F_shift fftshift(F); % 巴特沃斯高通滤波器 D0 30; n 2; [V, U] meshgrid(1:N, 1:M); D sqrt((U - M/2).^2 (V - N/2).^2); H 1 ./ (1 (D0 ./ (D eps)).^(2*n)); G_shift F_shift .* H; G ifftshift(G_shift); result real(ifft2(G)); result uint8(mat2gray(result) * 255); figure; subplot(1,2,1), imshow(uint8(img)), title(原图); subplot(1,2,2), imshow(result), title(高通滤波边缘提取);这里D eps是为了防止D0时除零。高通滤波的结果通常整体偏暗因为直流分量被抑制了显示的时候用mat2gray归一化会好很多。如果你想要更锐利的边缘可以把高通结果叠加回原图这就是频域锐化sharpened double(img) 1.5 * double(result); sharpened uint8(mat2gray(sharpened) * 255);系数1.5是个经验值太大噪声会被放大太小锐化不明显。5. 常见问题与排查技巧实录5.1 振铃效应为什么滤波后图像边缘出现波纹振铃是频域滤波最常见的副作用表现为图像边缘附近出现一圈圈波纹。根本原因是理想滤波器在频域的陡峭截止对应空域的sinc函数振荡。解决方案有三个层次第一换滤波器。把理想滤波器换成巴特沃斯或高斯过渡越平滑振铃越轻。这是最直接的办法。第二降低阶数。如果必须用巴特沃斯把n从4降到2甚至1振铃会明显减轻。第三加窗。在滤波前给图像乘一个窗函数比如汉宁窗减少边界不连续性。这个办法在图像拼接、频谱分析里很常用但会损失一部分边缘信息。我一般优先用第一种实在不行再考虑后两种。实测下来高斯滤波器在大多数场景下振铃都轻到可以忽略。5.2 结果图像整体偏移或出现网格状伪影这个问题通常出在fftshift和ifftshift的配对使用上。记住这个铁律做了几次fftshift就要做几次ifftshift而且顺序要对应。标准流程是fft2 → fftshift → 滤波 → ifftshift → ifft2如果你写成fft2 → fftshift → 滤波 → ifft2结果就会偏移。因为fft2输出的零频在角落你fftshift把它移到中心滤波后没有移回去就直接ifft2ifft2以为零频还在角落重建就错了。网格状伪影则通常是滤波器构造时坐标网格搞错了。检查你的meshgrid输出顺序Matlab里[V, U] meshgrid(v, u)的第一个输出是列坐标第二个才是行坐标很多人在这搞反。5.3 滤波后图像变暗或对比度异常频域滤波后图像整体变暗最常见的原因是直流分量被抑制了。直流分量对应图像的平均亮度如果你用的高通滤波器把零频也砍了图像当然变暗。检查方法很简单看你的滤波器H在中心位置的值。如果是0那就是把直流砍了。低通滤波器中心应该是1高通滤波器中心应该是0这是正常的高通本来就要抑制直流但如果你不希望图像变暗可以在滤波后把均值加回去result result mean(img(:));对比度异常则通常是归一化的问题。ifft2的结果范围可能不在0-255之间直接转uint8会截断。用mat2gray先归一化到0-1再乘255能解决大部分对比度问题。5.4 常见问题速查表问题现象可能原因排查方法解决方案频谱图一片黑未做对数变换检查是否用了log(1abs())加对数变换滤波后图像偏移fftshift/ifftshift不配对检查变换顺序严格按标准流程边缘出现波纹理想滤波器振铃换滤波器试试改用高斯或低阶巴特沃斯图像整体变暗直流分量被抑制检查H中心值加回均值或调整滤波器噪声只去掉一半漏了对称频率点检查陷波位置对称位置同时抑制结果有网格伪影坐标网格搞反检查meshgrid顺序确认行列对应关系虚部不为零浮点误差检查imag部分用real取实部6. 几个提升效率的实操技巧6.1 用交互式工具快速定位噪声频率手动找频谱亮点很费眼尤其是噪声点多的时候。我常用的办法是先把频谱图放大显示用imtool或者ginput交互式取点figure, imshow(spectrum, []); [x, y] ginput(2); % 鼠标点两个噪声亮点 disp([x, y]);ginput会返回你点击位置的坐标直接拿这些坐标去构造陷波滤波器比肉眼估计准得多。这个技巧在处理周期性噪声时特别省时间。6.2 批量对比不同参数的效果调参的时候不要一个个试写个循环批量生成对比图D0_list [20, 40, 60, 80]; figure; for i 1:length(D0_list) H exp(-(D.^2) / (2 * D0_list(i)^2)); G_shift F_shift .* H; G ifftshift(G_shift); result real(ifft2(G)); result uint8(mat2gray(result) * 255); subplot(2, 2, i), imshow(result); title([D0 , num2str(D0_list(i))]); end一张图看完所有参数的效果比来回改代码快十倍。这个习惯我从做第一个图像项目保持到现在强烈推荐。6.3 彩色图像的频域处理策略彩色图像有三个通道不能直接对RGB整体做fft2那样会把通道混在一起。正确做法是分通道处理img imread(color.jpg); img double(img); [M, N, ~] size(img); result zeros(M, N, 3); for c 1:3 F fft2(img(:,:,c)); F_shift fftshift(F); G_shift F_shift .* H; G ifftshift(G_shift); result(:,:,c) real(ifft2(G)); end result uint8(mat2gray(result) * 255);更好的做法是转到YCbCr空间只对亮度通道Y做滤波色度通道保持不变。这样能避免滤波导致的颜色偏移因为人眼对亮度细节敏感、对色度细节不敏感。6.4 性能优化大图像的处理技巧fft2对图像尺寸有要求如果尺寸是质数或者含大质因子计算会非常慢。解决办法是填充到2的幂次或者高度合数尺寸[M, N] size(img); M_pad 2^nextpow2(M); N_pad 2^nextpow2(N); img_pad zeros(M_pad, N_pad); img_pad(1:M, 1:N) img;处理完后再裁剪回原尺寸。填充的代价是内存占用增加但速度提升往往很明显。对于1024以上的图像这个优化能省不少时间。实操心得填充还有个额外好处——减少边界效应。图像边界在频域处理时容易产生伪影填充一圈零之后边界伪影会转移到填充区域裁剪掉就没了。7. 从频域视角重新理解图像滤波做了一段时间频域处理之后我对空域滤波的理解也变了。以前觉得高斯滤波、均值滤波、中值滤波是三种不同的操作现在明白它们本质上都是在做频率选择只是选择的方式不同。均值滤波对应频域的sinc型低通旁瓣衰减慢所以会有振铃高斯滤波对应频域的高斯低通没有旁瓣所以最平滑中值滤波是非线性的频域没有简单的对应关系但它的特点是保边去噪相当于在保留高频边缘的同时抑制了高频噪声这是线性滤波器做不到的。理解了这层对应关系之后选滤波器就不再是试试哪个效果好而是我需要保留哪个频段、抑制哪个频段。这个思维转变是我做图像处理这些年最大的收获之一。频域处理还有个空域做不到的优势可以针对特定方向做滤波。比如你想去除某个方向的条纹可以构造一个方向选择性的滤波器只抑制那个方向的频率成分。空域里要做同样的事得设计复杂的模板频域里就是改改D的计算方式% 只抑制水平方向的低频保留垂直方向 D abs(V - N/2); H 1 ./ (1 (D ./ D0).^(2*n));这种灵活性是频域方法在工程上不可替代的原因。最后说个我自己的习惯每次做完频域滤波我都会把原图、频谱图、滤波后的频谱图、结果图拼成一张四联图保存下来。这样回头复盘的时候一眼就能看出滤波器的效果和参数的关系。积累多了之后看到一张频谱图大概就能判断该用什么滤波器、参数取多少。这个直觉不是看书看来的是一张张图试出来的。

相关新闻

e2e不是测试类型,而是端到端责任治理框架

e2e不是测试类型,而是端到端责任治理框架

1. “e2e”不是缩写谜题,而是工程实践中一个被反复误读的信号灯“e2e”这三个字母在技术社区里出现频率极高,但几乎每次出现,都伴随着不同程度的语义滑坡。有人把它当测试类型,有人把它当架构风格,还有人直接当成部署流…

2026/10/14 0:04:19 阅读更多 →
AI记忆核心:智能座舱从被动响应到主动服务的关键技术解析

AI记忆核心:智能座舱从被动响应到主动服务的关键技术解析

最近这一两年,智能座舱的比拼已经明显从“功能堆料”转向了“懂不懂人”。所谓懂不懂人,背后往往是一整套记忆系统在工作:车能记住你的座椅和后视镜位置、常用的通勤路线、语音助手聊到一半的话题,甚至能在你上车时主动把空调调到…

2026/10/12 21:18:04 阅读更多 →
每天了解几个MCP SERVER:企业级MCP网关 Archestra.AI 的 TaoToken 统一 Key 接入实践

每天了解几个MCP SERVER:企业级MCP网关 Archestra.AI 的 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/13 22:21:45 阅读更多 →

最新新闻

大屏模板数据接入实战:从字段对齐到轮询刷新与避坑指南

大屏模板数据接入实战:从字段对齐到轮询刷新与避坑指南

简介:面向数据分析、产品经理及前端开发者的数据可视化大屏资源,提供100个可直接投入使用的原型模板图,覆盖销售业绩、运营监控、客户行为分析等多个行业的常见业务场景。项目基于 big-data-view-master 框架,数据库、API 接口或 …

2026/10/14 1:02:03 阅读更多 →
注意:苹果发布带屏智能中枢,高价入场能给家庭带来什么变化

注意:苹果发布带屏智能中枢,高价入场能给家庭带来什么变化

注意:苹果发布带屏智能中枢,高价入场能给家庭带来什么变化 你走进家门,客厅桌上立着一块小巧的方形屏幕,搭着半球形的金属底座。它看着像一台微缩版的经典电脑,当你走近时,屏幕上的日程和天气会自动放大&am…

2026/10/14 1:02:03 阅读更多 →
AI芯片软硬件协同设计:数据流架构与算子映射的工程实践

AI芯片软硬件协同设计:数据流架构与算子映射的工程实践

1. AI芯片软硬件协同设计的整体思路拆解AI芯片这个领域,做了几年下来最大的感受就是:硬件指标再漂亮,软件栈跟不上,实际跑起来照样拉胯。这次想聊的"软硬件设计"系列第五篇,核心聚焦在一个问题上——当算法模…

2026/10/14 1:02:03 阅读更多 →
JetBrains官宣全新AI IDE:从插件到整库理解,重构AI编程工作流

JetBrains官宣全新AI IDE:从插件到整库理解,重构AI编程工作流

最近圈子里的消息传得很快:Jetbrains 正式官宣了一款全新的 AI IDE。说实话,刚看到这个消息的时候,我第一反应不是"又来了一个新工具",而是"Jetbrains 终于不再只是往 IDE 里塞 AI 插件了"。过去两三年&#…

2026/10/14 1:02:03 阅读更多 →
PaperSpine5 期刊学习指南:从目标期刊文献到可落地的写作与排版迁移

PaperSpine5 期刊学习指南:从目标期刊文献到可落地的写作与排版迁移

AI 技能AI 写作人工智能深度研究AI 应用 【免费下载链接】PaperSpine PaperSpine5 — local-first, evidence-bound paper research, writing, figures, review and delivery. Download: https://wubing2023.github.io/PaperSpine/v5/ 项目地址: https://gitcode.co…

2026/10/14 1:02:03 阅读更多 →
双塔模型query侧个性化融合:原理、路径与工程实践

双塔模型query侧个性化融合:原理、路径与工程实践

1. 为什么双塔模型的query侧“长不大”:从结构缺陷看个性化融合的必然性在推荐系统工程实践中,双塔模型(Dual-Tower Model)早已不是新鲜概念。它把用户行为序列和候选物品分别编码进两个独立子网络,最后用内积或余弦相…

2026/10/14 1:01:03 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →