新闻详情

新闻详情

首页 / 资讯中心 / 详情

OpenCV-python小玩意27 如何做灰度、增强锐化、黑白等滤镜

发布时间:2026/9/27 22:49:43来源:尧图网络
OpenCV-python小玩意27 如何做灰度、增强锐化、黑白等滤镜
0. 我要做什么OpenCV-python小玩意这个系列半年没有更新了感叹时光荏苒岁月如梭-。今天换个轻松的玩法给一张本地图片套上滤镜。手机修图软件里那些「灰度」「黑白」「锐化」「增强」底层很多就是图像处理里的常规操作。OpenCV也能做而且几行代码就能跑通。所以老规矩今天的目标是用imread读入一张图按数字键切换滤镜预览效果按s还能把当前效果存下来。顺便把几个常用滤镜的原理和实现说一说。1. 滤镜到底是什么滤镜听起来很玄其实就是对每个像素或一块邻域按某种规则重新算一遍颜色。滤镜本质上在干什么常用手段灰度丢掉颜色只留亮度cvtColor黑白灰度后再拉对比度更像「胶片黑白」灰度 CLAHE / 对比度拉伸锐化加强边缘让细节更突出卷积核filter2D增强提亮、拉对比convertScaleAbs/ CLAHE柔化抹平细节高斯模糊反色颜色取反bitwise_not怀旧偏黄棕的复古色颜色矩阵变换《小玩意4》里灰度化是为了预处理今天换个角度——把它当成拍照滤镜来玩。2. 灰度滤镜灰度最熟让我们再回忆一下。彩色图是 BGR 三通道灰度是单通道亮度[Y 0.299R 0.587G 0.114B]graycv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)# 预览时转回三通道方便和其他滤镜拼在一起显示gray_bgrcv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)效果如下3. 黑白滤镜比灰度更直接这叫我的世界里没有灰色地带非黑即白很多人把「灰度」和「黑白」混着叫。严格说灰度0~255 连续灰阶偏「技术处理」黑白滤镜往往还要拉对比、压中间调阴影更黑、高光更亮才像手机里的「黑白」一个好用的做法是先转灰度再用CLAHE自适应直方图均衡把局部对比度拉起来。deffilter_bw(frame):graycv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)clahecv2.createCLAHE(clipLimit2.5,tileGridSize(8,8))bwclahe.apply(gray)returncv2.cvtColor(bw,cv2.COLOR_GRAY2BGR)clipLimit越大对比越猛太猛会像「过曝黑白」。效果如下4. 增强滤镜提亮 拉对比增强不一定非要复杂算法。OpenCV 里最直接的是convertScaleAbsdstcv2.convertScaleAbs(src,alpha1.0,beta0)alpha对比度系数1 变硬朗1 变淡beta亮度偏置正数变亮负数变暗deffilter_enhance(frame,alpha1.4,beta20):returncv2.convertScaleAbs(frame,alphaalpha,betabeta)想精细一点可以只在亮度通道上做 CLAHEdeffilter_enhance_clahe(frame):labcv2.cvtColor(frame,cv2.COLOR_BGR2LAB)l,a,bcv2.split(lab)clahecv2.createCLAHE(clipLimit2.0,tileGridSize(8,8))l2clahe.apply(l)lab2cv2.merge([l2,a,b])returncv2.cvtColor(lab2,cv2.COLOR_LAB2BGR)效果如下5. 锐化滤镜边缘更哇塞锐化的经典做法是用卷积核强调中心像素、削弱邻居等价于「原图 边缘」。常用 3×3 锐化核0 -1 0 -1 5 -1 0 -1 0中心是 5四周是 -1加起来还是 1整体亮度大致不变但边缘会被放大。deffilter_sharpen(frame):kernelnp.array([[0,-1,0],[-1,5,-1],[0,-1,0]],dtypenp.float32)returncv2.filter2D(frame,-1,kernel)再介绍一下cv2.filter2Ddstcv2.filter2D(src,ddepth,kernel[,dst[,anchor[,delta[,borderType]]]])参数说明src输入图像ddepth输出深度-1表示与输入相同kernel卷积核浮点矩阵anchor锚点默认核中心delta结果再加的偏置默认 0borderType边界填充方式如果想再猛一点就把中心改成 9、四周全 -1kernel_strongnp.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]],dtypenp.float32)还有一种更「自然」的锐化叫USM反锐化掩模先模糊再用原图减模糊得到边缘叠回去。deffilter_usm(frame,amount1.5,radius3):blurcv2.GaussianBlur(frame,(0,0),radius)returncv2.addWeighted(frame,1amount,blur,-amount,0)效果如下6. 再聊聊其他滤镜既然标题写了「等滤镜」哈哈哈那就顺便把其他几个常玩的也补上。6.1 柔化美颜味的糊deffilter_soft(frame):returncv2.GaussianBlur(frame,(15,15),0)6.2 反色deffilter_invert(frame):returncv2.bitwise_not(frame)6.3 怀旧偏棕黄思路对 BGR 做一组线性变换让画面偏暖、偏黄。deffilter_sepia(frame):kernelnp.array([[0.272,0.534,0.131],# B[0.349,0.686,0.168],# G[0.393,0.769,0.189],# R],dtypenp.float32)sepiacv2.transform(frame,kernel)returnnp.clip(sepia,0,255).astype(np.uint8)6.4 浮雕浮雕核强调方向差分画面会像刻在石头上deffilter_emboss(frame):graycv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)kernelnp.array([[-2,-1,0],[-1,1,1],[0,1,2]],dtypenp.float32)embosscv2.filter2D(gray,-1,kernel)128embossnp.clip(emboss,0,255).astype(np.uint8)returncv2.cvtColor(emboss,cv2.COLOR_GRAY2BGR)7. 完整小玩意读取图片切换滤镜把上面串起来。用cv2.imread读本地文件按键切换时反复对同一张原图套滤镜按s可把当前效果保存下来。按键约定按键滤镜0原图1灰度2黑白3增强4锐化5柔化6反色7怀旧8浮雕s保存当前效果q/Esc退出完整代码importcv2importnumpyasnpimportosdeffilter_gray(img):graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)returncv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)deffilter_bw(img):graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)clahecv2.createCLAHE(clipLimit2.5,tileGridSize(8,8))bwclahe.apply(gray)returncv2.cvtColor(bw,cv2.COLOR_GRAY2BGR)deffilter_enhance(img,alpha1.4,beta20):returncv2.convertScaleAbs(img,alphaalpha,betabeta)deffilter_sharpen(img):kernelnp.array([[0,-1,0],[-1,5,-1],[0,-1,0]],dtypenp.float32)returncv2.filter2D(img,-1,kernel)deffilter_soft(img):returncv2.GaussianBlur(img,(15,15),0)deffilter_invert(img):returncv2.bitwise_not(img)deffilter_sepia(img):kernelnp.array([[0.272,0.534,0.131],[0.349,0.686,0.168],[0.393,0.769,0.189]],dtypenp.float32)sepiacv2.transform(img,kernel)returnnp.clip(sepia,0,255).astype(np.uint8)deffilter_emboss(img):graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)kernelnp.array([[-2,-1,0],[-1,1,1],[0,1,2]],dtypenp.float32)embosscv2.filter2D(gray,-1,kernel)128embossnp.clip(emboss,0,255).astype(np.uint8)returncv2.cvtColor(emboss,cv2.COLOR_GRAY2BGR)FILTERS{0:(原图,lambdaf:f.copy()),1:(灰度,filter_gray),2:(黑白,filter_bw),3:(增强,filter_enhance),4:(锐化,filter_sharpen),5:(柔化,filter_soft),6:(反色,filter_invert),7:(怀旧,filter_sepia),8:(浮雕,filter_emboss),}defmain():# 图片路径image_pathimages/test.jpgimgcv2.imread(image_path)ifimgisNone:print(f无法读取图片:{image_path})returnmode0print(按 0-8 切换滤镜s 保存q/Esc 退出)whileTrue:name,fnFILTERS[mode]outfn(img)showout.copy()cv2.putText(show,f[{mode}]{name},(20,40),cv2.FONT_HERSHEY_SIMPLEX,1.0,(0,255,0),2)cv2.imshow(OpenCV Image Filters,show)# waitKey(0)等按键再刷新适合静态图片keycv2.waitKey(0)0xFFifkeyin(ord(q),27):breakiford(0)keyord(8):modekey-ord(0)ifkeyord(s):stemos.path.splitext(os.path.basename(image_path))[0]save_pathf{stem}_{name}.jpgcv2.imwrite(save_path,out)print(f已保存:{save_path})cv2.destroyAllWindows()if__name____main__:main()把image_path换成你的图就能玩。想实时预览的话另有摄像头版脚本可对照。效果如下8. 一点小总结你想要的感觉优先试去色、省事灰度更有「照片感」的黑白灰度 CLAHE画面闷、想提精神convertScaleAbs/ LABCLAHE糊、细节发虚锐化核 / USM玩味、做特效反色、怀旧、浮雕参数是滤镜的灵魂同一套核换个alpha、换个clipLimit气质就会不一样。文中使用的测试图片是主打高清免费无水印的扫描小程序「程序员Linc表格识别」上去直接就可以使用嘎嘎好使。最新版本的扫描功能已经支持了导出增强锐化、黑白、加深、灰度等PDF原理上与上述滤镜甚是相近。欢迎大家使用。有什么需要讨论的我们评论区见参考OpenCV: Changing ColorspacesOpenCV: Image FilteringOpenCV: Histograms - Equalization#OpenCV #python #滤镜 #图像处理 #锐化
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

磁县网站制作公司选型一文搞懂:改需求慢的3种技术根源 2026/9/28 0:35:20

磁县网站制作公司选型一文搞懂:改需求慢的3种技术根源

磁县网站制作公司选型一文搞懂:改需求慢的3种技术根源 改个按钮颜色,建站公司拖一周才给反馈?这种憋屈感,很多磁县本地企业老板都尝过。别急着骂人,先看看他们用的是啥技术栈。很多“慢”不是态度问题,是技术债压身。本文不聊虚的,直接拆解三种主流建…

阅读更多 →
时尚网站建设到底多少钱?搞定备案不踩坑的报价全解析 2026/9/28 0:35:07

时尚网站建设到底多少钱?搞定备案不踩坑的报价全解析

时尚网站建设到底多少钱?搞定备案不踩坑的报价全解析 刚接了个做服装品牌的单子,老板第一句话就问:“我想做个高大上的时尚官网,到底多少钱?还有,那个ICP备案流程我是一头雾水,怕耽误上线。”…

阅读更多 →
信誉好的广州外贸网站2026最新 2026/9/28 0:34:10

信誉好的广州外贸网站2026最新

避坑指南:3个广州外贸网站实战案例揭秘信誉好的建站逻辑 别再看那些千篇一律的模板站了,真的,太丑且不够用。很多广州做跨境的朋友跟我吐槽,花了几千块做的站,连个像样的询盘都接不住,客户打开看一眼就关掉,觉得这公司不靠谱。我干了十年建站,见过太…

阅读更多 →
3款wordpress群发插件对比评测,告别手动复制粘贴 2026/9/28 0:34:03

3款wordpress群发插件对比评测,告别手动复制粘贴

3款wordpress群发插件对比评测,告别手动复制粘贴 改个需求建站公司拖一周,这种憋屈谁懂?以前我接私单,客户要发100封营销邮件,我盯着浏览器手动填收件人,手都抽筋了。直到我深入研究了几款主流的wordpress群发插件,才发现原来效…

阅读更多 →
重庆白云seo整站优化避坑指南:3档建站报价详解 2026/9/28 0:33:31

重庆白云seo整站优化避坑指南:3档建站报价详解

重庆白云seo整站优化避坑指南:3档建站报价详解 改个需求建站公司拖一周,这种憋屈事谁没经历过?很多在重庆白云片区做本地生意的老板,为了省那点钱选了低价套餐,结果后期改个按钮颜色都要等三天,气得想砸电脑。其实问题不在人,而在你一开始就没把【…

阅读更多 →
百度搜索引擎关键词优化实战:3个免费工具搞定流量与转化 2026/9/28 0:33:31

百度搜索引擎关键词优化实战:3个免费工具搞定流量与转化

百度搜索引擎关键词优化实战:3个免费工具搞定流量与转化 别再用那些一眼假、排版乱、加载慢的模板网站了。客户打开你的官网,3秒内看不到核心价值,直接关页,连注册邮箱的机会都不给。这时候你才意识到, 模板网站太丑不够用…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉