当前位置: 首页 > article >正文

计算机视觉opencv之视频滤波边界填充图像形态学边缘检测

一、视频滤波这里是对一个视频进行读取并对视频每一帧生成噪声最后利用中值滤波清理噪声并保持视频清晰import cv2 def add_peppersalt_noise(image, n10000): import numpy as np result image.copy() h, w image.shape[:2] for i in range(n): x np.random.randint(0, h) y np.random.randint(0, w) if np.random.randint(0, 2) 0: result[x, y] 0 else: result[x, y] 255 return result # 读取视频 cap cv2.VideoCapture(rD:\learn\代码所用文本\test.avi) while True: ret, image cap.read() # 读取视频的每一帧 if not ret: break # 视频结束 # 显示原视频帧 cv2.imshow(yuantu, image) # 对当前帧添加噪声 image_noise add_peppersalt_noise(image) # 显示加噪后的帧 cv2.imshow(noise, image_noise) median_filtered cv2.medianBlur(image_noise, 3) cv2.imshow(median_filtered, median_filtered) # 按esc退出 if cv2.waitKey(25) 0xFF 27: break cap.release() cv2.destroyAllWindows()根据上一篇opencv博客对图片的滤波处理到这篇博客视频的滤波处理。并结合之前对图片和视频的其他处理会发现视频的处理都是获取每一帧图片进行处理本质上就是处理图片。读取图片acv2.imread(r图片路径) cv2.imshow(image,a)视频读取acv2.VideoCapture(视频路径)#括号中如果写的是0就代表打开摄像头 while True: ret,imagea.read() if not ret:#检查是否成功读取ret为false break cv2.imshow(video,image)#显示当前帧加一个while true对视频每一帧图片进行获取其他与对图片处理是一样的。二、图片边界填充topbottom, left, right:相应方向上的边框宽度。borderType:定义要添加边框的类型它可以是以下的一种:cv2.BORDER_CONSTANT:添加的边界框像素值为常数(需要额外再给定一个参数)cv2.BORDER_REFLECT:添加的边框像素将是边界元素的镜面反射类似于gfedcba|abcdefgh|hgfedcba。(交界处也复制了)cv2.BORDER_REFLECT _101 或 cv2.BORDER_DEFAULT,和上面类似,但是有一些细微的不同,类似于gfedcb|abcdefgh|gfedcba(交接处删除了)cv2.BoRDER_REPLICATE:使用最边界的像素值代替类似于aaaaaa|abcdefgh|hhhhhhhcv2.BoRDER_WRAP:上下左右边依次替换,cdefgh|abcdefgh|abcdefgimport cv2 import os print(当前工作目录:, os.getcwd()) yuantu cv2.imread(rqqqqss.jpg) top,bottom,left,right 50,50,50,50 constant cv2.copyMakeBorder(yuantu, top,bottom, left,right, borderTypecv2.BORDER_CONSTANT, value(0,255,255)) refLect cv2.copyMakeBorder(yuantu,top,bottom,left,right,borderTypecv2.BORDER_REFLECT) refLect101 cv2.copyMakeBorder(yuantu,top,bottom,left,right,borderTypecv2.BORDER_REFLECT101) replicate cv2.copyMakeBorder(yuantu,top,bottom, left,right,borderTypecv2.BORDER_REPLICATE) wrap cv2.copyMakeBorder(yuantu,top,bottom,left,right,borderTypecv2. BORDER_WRAP) cv2.imshow(yuantu,yuantu) cv2.imshow(constant,constant) cv2.imshow(reflect,refLect) cv2.imshow(refLect101,refLect101) cv2.imshow(replicate,replicate) cv2.imshow(wrap,wrap) cv2.waitKey(0)三、图像形态学1.图像腐蚀和图像膨胀import numpy as np import cv2 #图像腐蚀 #kernel:用于腐蚀的结构原件 suncv2.imread(rD:\project\sun.png) cv2.imshow(sun,sun) kernelnp.ones((3,3),np.uint8)#设置kernel大小全一矩阵,越大腐蚀更明显 erosion_1cv2.erode(sun,kernel,iterations2)#iterations默认是1越大腐蚀迭代次数越多腐蚀执行次数多腐蚀更明显 cv2.imshow(erosion_1,erosion_1) cv2.imwrite(yuan.png,erosion_1) cv2.waitKey(0) #图像膨胀 wenzicv2.imread(rD:\project\wenzi.png) cv2.imshow(wenzi,wenzi) kernelnp.ones((2,2),np.uint8) wenzi_1cv2.dilate(wenzi,kernel,iterations1) cv2.imshow(wenzi_1,wenzi_1) cv2.waitKey(0)图像腐蚀其实就是让图像瘦一圈从而达到清除一些噪声的目的把矩阵改为4,4的时候会发现腐蚀效果强了些右上角直线被全腐蚀了保持矩阵大小为3,3修改iterations的值为3会发现腐蚀效果也强了右上角直线也被全腐蚀了图像膨胀就是让图像胖一些会发现文字的变粗了图像膨胀也可以通过调节矩阵大小和iterations来调整膨胀效果2.开运算和闭运算import numpy as np import cv2 #开运算先腐蚀后膨胀 image2cv2.imread(rD:\project\zhiwen1.png) cv2.imshow(image2,image2) kernelnp.ones((3,3),np.uint8) image2_1cv2.morphologyEx(image2,cv2.MORPH_OPEN,kernel) cv2.imshow(image2_1,image2_1) cv2.waitKey(0) #闭运算先膨胀后腐蚀 image3cv2.imread(rD:\project\zhiwen2.png) cv2.imshow(image3,image3) kernelnp.ones((5,5),np.uint8) image3_1cv2.morphologyEx(image3,cv2.MORPH_CLOSE,kernel) cv2.imshow(image3_1,image3_1) cv2.waitKey(0)开运算先腐蚀后膨胀把噪声消除后在对重要信息进行膨胀使得更清晰当然这里也是可以修改矩阵大小进行效果的调整闭运算先膨胀后腐蚀3.梯度运算import numpy as np import cv2 wenzicv2.imread(rD:\project\wenzi.png) cv2.imshow(wenzi,wenzi) kernelnp.ones((2,2),np.uint8) #膨胀 # peng_wenzicv2.dilate(wenzi,kernel,iterations1) # cv2.imshow(peng_wenzi,peng_wenzi) #腐蚀 # fu_wenzicv2.dilate(wenzi,kernel,iterations1) # cv2.imshow(fu_wenzi,fu_wenzi) #膨胀-腐蚀 bianyuancv2.morphologyEx(wenzi,cv2.MORPH_GRADIENT,kernel) cv2.imshow(bianyuan,bianyuan) cv2.waitKey(0) cv2.destroyAllWindows()效果就是变成镂空只保留边缘可以通过矩阵大小调整效果4.顶帽和黑帽顶帽原始图像-开运算用于提取周围区域亮的细节黑帽闭运算-原始图像用于提取比周围区域暗的细节import numpy as np import cv2 suncv2.imread(rD:\project\sun.png) cv2.imshow(sun,sun) kernelnp.ones((2,2),np.uint8) #开运算 # kai_suncv2.morphologyEx(sun,cv2.MORPH_OPEN,kernel) # cv2.imshow(kai_sun,kai_sun) #顶帽 ding_suncv2.morphologyEx(sun,cv2.MORPH_TOPHAT,kernel) cv2.imshow(ding_sun,ding_sun) #闭运算 # bi_suncv2.morphologyEx(sun,cv2.MORPH_CLOSE,kernel) # cv2.imshow(bi_sun,bi_sun) #黑帽 hei_suncv2.morphologyEx(sun,cv2.MORPH_BLACKHAT,kernel) cv2.imshow(hei_sun,hei_sun) cv2.waitKey(0) # cv2.destroyAllWindows()效果图四、图像的边缘检测sobel算子cv2.Sobel(src, ddepth, dx, dy[, ksize[, scale[, delta[, borderType]]]])#参数:ddepth:输出图像的深度(可以理解为数据类型)-1表示与原图像相同的深度dx,dy:当组合为dx1,dy0时求x方向的一阶导数当组合为dx0,dy1时求y方向的一阶导数(如果同时为1通常效果不佳)ksize:(可选参数)Sobel算子的大小必须是1,3,5或者7,默认为3。uint8默认范围0~255整数内存1字节/像素特点只能存正数不能存负数和小数超出范围会自动截断256—255-1—0float64范围任意浮点数包括负数内存8字节/像素特点能存负数和小数精度高import cv2 yuancv2.imread(yuan.png) cv2.imshow(yuan,yuan) #x方向上的左边缘 yuan_x1cv2.Sobel(yuan,-1,dx1,dy0) # cv2.imshow(yuan_x1,yuan_x1) # x方向上的右边缘包括负数信息但显示不出来因为范围是0~255 yuan_x2cv2.Sobel(yuan,cv2.CV_64F,dx1,dy0)#默认的unit8改为float64可保存负数 # cv2.imshow(yuan_x2,yuan_x2) #x方向上的全部边缘包括负数信息进行绝对值操作右端也可以显示出来 yuan_x_fullcv2.convertScaleAbs(yuan_x2)#转换为绝对值负为正 cv2.imshow(yuan_x_full,yuan_x_full) #y方向上的上边缘 yuan_y1cv2.Sobel(yuan,-1,dx0,dy1) # cv2.imshow(yuan_y1,yuan_y1) #y方向上的下边缘 yuan_y2cv2.Sobel(yuan,cv2.CV_64F,dx0,dy1) # cv2.imshow(yuan_y2,yuan_y2) #y方向上的全部边缘 yuan_y_fullcv2.convertScaleAbs(yuan_y2) cv2.imshow(yuan_y_full,yuan_y_full) # #如果同时使 用xy方向 # yuan_xycv2.Sobel(yuan,-1,dx1,dy1) # cv2.imshow(yuan_xy,yuan_xy)#效果不好 #把yuan_x_full和yuan_y_full进行图片融合 yuan_xy_fullcv2.addWeighted(yuan_x_full,1,yuan_y_full,1,0) cv2.imshow(yuan_xy_full,yuan_xy_full) cv2.waitKey(0)最后我们是通过图像的融合如果同时使用xy方向效果不如图像融合的效果好

相关文章:

计算机视觉opencv之视频滤波边界填充图像形态学边缘检测

一、视频滤波这里是对一个视频进行读取,并对视频每一帧生成噪声,最后利用中值滤波清理噪声并保持视频清晰import cv2def add_peppersalt_noise(image, n10000):import numpy as npresult image.copy()h, w image.shape[:2]for i in range(n):x np.ran…...

卡证检测矫正模型代码实例:Python调用接口+JSON结果解析示范

卡证检测矫正模型代码实例:Python调用接口JSON结果解析示范 1. 引言 你有没有遇到过这样的场景?需要批量处理一堆身份证、护照或驾照的照片,手动裁剪、矫正角度,不仅效率低下,还容易出错。或者,你的业务系…...

桌面整理规划程序,按使用频率摆放物品,提高找东西速度,工作更专注。

🖥️ 智能桌面整理规划系统 (Smart Desk Organizer)一、实际应用场景描述场景设定:深夜加班的“寻物迷宫”凌晨1点,全栈工程师阿强正在赶一个紧急需求。1. 打断时刻:他需要插入U盘拷贝文件,但在杂乱的桌面上摸索了整整…...

Qwen2.5-VL-7B-Instruct实战教程:构建带历史记录的多轮图文对话Web应用

Qwen2.5-VL-7B-Instruct实战教程:构建带历史记录的多轮图文对话Web应用 1. 项目介绍与准备工作 Qwen2.5-VL-7B-Instruct是一款强大的多模态视觉-语言模型,能够同时理解图像和文本内容,并进行智能对话。本教程将带你从零开始,部署…...

Stable-Diffusion-v1-5-archive风格迁移实战:将照片转为油画/水彩/像素风三步法

Stable-Diffusion-v1-5-archive风格迁移实战:将照片转为油画/水彩/像素风三步法 你是不是也有一堆普通的照片,想给它们换个风格,变成一幅油画、一张水彩画,或者复古的像素风游戏截图?自己学画画太费时间,用…...

Qwen3-ASR-1.7B高性能部署:GPU算力适配RTX4090/3090/3060实测对比

Qwen3-ASR-1.7B高性能部署:GPU算力适配RTX4090/3090/3060实测对比 最近在折腾语音识别项目,发现阿里云通义千问团队开源的Qwen3-ASR-1.7B模型效果确实不错。这个1.7B参数的高精度版本,支持52种语言和方言,识别准确率比之前的0.6B…...

wan2.1-vae新手教程:5分钟掌握提示词书写、负面词设置、尺寸选择核心操作

wan2.1-vae新手教程:5分钟掌握提示词书写、负面词设置、尺寸选择核心操作 你是不是也遇到过这种情况:看到别人用AI生成的图片又美又酷,自己上手一试,出来的图却总是奇奇怪怪,要么是人物多根手指,要么是背景…...

SecGPT-14B部署案例:中小企业安全运营中心(SOC)轻量化AI分析终端搭建

SecGPT-14B部署案例:中小企业安全运营中心(SOC)轻量化AI分析终端搭建 1. 项目背景与价值 在网络安全形势日益严峻的今天,中小企业安全运营中心(SOC)面临着专业人才短缺、分析工具昂贵、响应速度慢等痛点。…...

Qwen2.5-VL-Chord商业应用:机器人导航中视觉-语言对齐方案

Qwen2.5-VL-Chord商业应用:机器人导航中视觉-语言对齐方案 1. 项目简介 1.1 什么是Chord视觉定位服务? Chord是一个基于Qwen2.5-VL多模态大模型的智能视觉定位系统。它能够理解自然语言描述,并在图像中精确定位目标对象,返回准…...

墨语灵犀效果实录:爱尔兰盖尔语民谣→中文乐府体译文的音节与情感映射

墨语灵犀效果实录:爱尔兰盖尔语民谣→中文乐府体译文的音节与情感映射 1. 引言:当古老民谣遇见AI诗意翻译 在语言翻译的世界里,有一种特殊的挑战——将充满文化底蕴的古老民谣,不仅准确翻译,还要保留原有的韵律美和情…...

TinyNAS搜索空间约束:DAMO-YOLO轻量化中延迟与精度的Pareto前沿分析

TinyNAS搜索空间约束:DAMO-YOLO轻量化中延迟与精度的Pareto前沿分析 1. 项目概述 1.1 这是什么系统? 这是一个基于DAMO-YOLO和TinyNAS技术的实时手机检测系统,专门为移动端低算力场景设计。系统通过Web界面提供简单易用的手机检测功能&…...

ChatTTS错误排查手册:常见问题诊断与解决方案

ChatTTS错误排查手册:常见问题诊断与解决方案 1. 引言 ChatTTS作为目前开源界最逼真的语音合成模型之一,凭借其自然的停顿、换气声和笑声效果,让语音合成听起来完全不像机器人。但在实际使用过程中,用户可能会遇到各种问题&…...

AWPortrait-Z开源模型部署避坑指南:端口冲突/LoRA加载失败/历史不刷

AWPortrait-Z开源模型部署避坑指南:端口冲突/LoRA加载失败/历史不刷新 本文基于实际部署经验,总结AWPortrait-Z人像美化模型部署中的常见问题及解决方案,帮助开发者快速避开部署陷阱。 1. 环境准备与快速部署 1.1 系统要求与前置检查 在开始…...

Qwen2.5-VL-7B-Instruct惊艳效果:支持多图对比推理(如前后对比图分析)

Qwen2.5-VL-7B-Instruct惊艳效果:支持多图对比推理(如前后对比图分析) 你有没有遇到过这样的情况?拿到两张图片,一张是装修前的毛坯房,一张是装修后的效果图,想快速总结出设计师做了哪些改动。…...

VideoAgentTrek-ScreenFilterAI应用:作为AIGC视频生成pipeline的内容安全过滤层

VideoAgentTrek-ScreenFilterAI应用:作为AIGC视频生成pipeline的内容安全过滤层 1. 引言 想象一下,你刚刚用AI生成了一个精彩的短视频,画面里有手机、电脑屏幕,甚至还有街边的广告牌。正准备发布时,一个念头闪过&…...

MusePublic圣光艺苑保姆级教程:从CSDN镜像下载到本地离线部署全过程

MusePublic圣光艺苑保姆级教程:从CSDN镜像下载到本地离线部署全过程 1. 引言:开启你的数字艺术之旅 想象一下,你拥有一间属于自己的数字画室,这里没有颜料的气味,没有画布的纹理,但却能创造出媲美梵高星空…...

Nanbeige4.1-3B开源治理实践:CLA签署、代码签名与供应链安全扫描

Nanbeige4.1-3B开源治理实践:CLA签署、代码签名与供应链安全扫描 1. 引言:为什么开源项目也需要“安全门卫”? 你可能觉得,开源项目嘛,代码都公开了,大家随便看随便用,还需要什么安全治理&…...

Qwen2.5-72B-GPTQ-Int4部署教程:vLLM支持LoRA微调的API接口配置方法

Qwen2.5-72B-GPTQ-Int4部署教程:vLLM支持LoRA微调的API接口配置方法 1. 开篇:为什么选择这个组合? 如果你正在寻找一个既能处理复杂任务,又能在普通硬件上流畅运行的大模型,那么Qwen2.5-72B-Instruct-GPTQ-Int4这个组…...

Qwen3-VL-2B推理结果缓存:提升重复查询效率技巧

Qwen3-VL-2B推理结果缓存:提升重复查询效率技巧 1. 项目概述 Qwen3-VL-2B-Instruct是一个强大的视觉语言模型,能够理解图片内容并进行智能对话。不同于普通的聊天机器人,这个模型真正具备了"看"的能力——它可以识别图片中的物体…...

Gemma-3 Pixel Studio开发者实践:自定义视觉提示词提升识别精度

Gemma-3 Pixel Studio开发者实践:自定义视觉提示词提升识别精度 1. 视觉提示词的核心价值 在Gemma-3 Pixel Studio的实际应用中,我们发现视觉提示词的质量直接影响模型对图像的理解精度。通过精心设计的提示词,开发者可以: 将识…...

Phi-4-mini-reasoning×ollama企业应用:法律条文逻辑推理与合规风险识别

Phi-4-mini-reasoningollama企业应用:法律条文逻辑推理与合规风险识别 1. 引言:当法律遇上AI推理 想象一下这个场景:法务部门的同事拿着一份长达50页的合同草案,眉头紧锁地跟你说:“帮我看看这里面有没有合规风险点&…...

Flowise国产化适配:麒麟V10+昇腾910B环境部署验证报告

Flowise国产化适配:麒麟V10昇腾910B环境部署验证报告 1. 引言:当可视化AI工作流遇上国产算力 想象一下,你手头有一个45万开发者都在用的开源神器——Flowise,它能让你像搭积木一样,通过拖拽节点就构建出复杂的AI应用…...

OFA视觉语义蕴含模型教程:如何构造高质量英文前提提升entailment准确率

OFA视觉语义蕴含模型教程:如何构造高质量英文前提提升entailment准确率 1. 镜像简介与核心能力 如果你正在寻找一个能理解图片和文字之间关系的AI模型,那么OFA视觉语义蕴含模型就是为你准备的。这个模型就像一个聪明的“看图说话”专家,它能…...

Qwen3-32B开源大模型实战:Clawdbot平台已支持函数调用、JSON Schema输出

Qwen3-32B开源大模型实战:Clawdbot平台已支持函数调用、JSON Schema输出 重要提示:本文介绍的Clawdbot平台整合方案基于企业内部私有部署环境,所有技术细节和配置方法仅供参考,实际部署需根据具体环境调整。 1. 项目背景与价值 企…...

Qwen3-TTS-1.7B效果展示:中文新闻播报克隆音色与原声相似度MOS评分

Qwen3-TTS-1.7B效果展示:中文新闻播报克隆音色与原声相似度MOS评分 获取更多AI镜像 想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,…...

Z-Image-Turbo-辉夜巫女生成作品:基于《万叶集》诗句的意象化视觉转译

Z-Image-Turbo-辉夜巫女生成作品:基于《万叶集》诗句的意象化视觉转译 1. 模型简介与部署 Z-Image-Turbo-辉夜巫女是基于Z-Image-Turbo模型的LoRA版本,专门针对辉夜巫女主题图片生成进行了优化。该模型能够将《万叶集》等古典诗歌中的意境转化为精美的…...

Ostrakon-VL-8B真实作品:生成带置信度的货架商品分布热力图(PNG+JSON)

Ostrakon-VL-8B真实作品:生成带置信度的货架商品分布热力图(PNGJSON) 如果你在零售行业工作,或者对店铺管理感兴趣,那你一定知道货架陈列有多重要。商品怎么摆、摆多少、放在哪个位置,这些细节直接影响着销…...

Gemma-3-12b-it企业级部署案例:政务公开文件图像+文本联合政策解读系统

Gemma-3-12b-it企业级部署案例:政务公开文件图像文本联合政策解读系统 1. 引言:当政策文件遇上AI多模态解读 想象一下,你是一位基层工作人员,每天需要处理大量来自不同部门的政务公开文件。这些文件形式各异,有的是纯…...

Qwen3-TTS-1.7B开源镜像部署指南:免配置启动Web界面(端口7860)

Qwen3-TTS-1.7B开源镜像部署指南:免配置启动Web界面(端口7860) 1. 为什么这款语音合成模型值得你花5分钟试试? 你有没有遇到过这些场景: 想给短视频配个自然的人声,但商用TTS服务按字收费,成…...

Qwen3-ASR-1.7B惊艳效果:粤语新闻播报→繁体字精准转写

Qwen3-ASR-1.7B惊艳效果:粤语新闻播报→繁体字精准转写 1. 开篇:当AI“听懂”了粤语新闻 想象一下这个场景:你正在观看一段粤语新闻播报,主播语速飞快,夹杂着不少专业名词和地名。你想把内容转成文字稿,但…...