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

手机网站插件代码公司网站未备案

手机网站插件代码,公司网站未备案,网站设计的意义,画质优化app下载Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 一、简单介绍 二、简单给视频添加水印图片效果实现…Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 一、简单介绍 二、简单给视频添加水印图片效果实现原理 三、简单给视频添加水印图片效果案例实现简单步骤 四、注意事项 一、简单介绍 Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言最初被设计用于编写自动化脚本(shell)随着版本的不断更新和语言新功能的添加越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言可以应用于以下领域 Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。 这里使用 Python  基于 OpenCV 进行视觉图像处理...... 二、简单给视频添加水印图片效果实现原理 视频水印是指在视频内容中添加图像、文字或其他标识符的技术以表明视频的所有权、来源、版权信息或其他相关信息。视频水印可以是透明的或半透明的通常位于视频画面的角落或其他不影响主要内容的位置。视频水印可以用于保护视频内容的版权防止未经授权的复制和使用以及增加视频的专业性和可识别性。 实现原理 打开输入视频文件并获取其每一帧的大小。打开水印图像文件并获取其大小。遍历视频的每一帧将水印图像叠加到视频帧上。根据指定的位置参数确定水印在视频帧上的位置并将水印图像叠加到相应的位置上。将带有水印的视频帧写入输出视频文件。 实现方法 使用 OpenCV 的 VideoCapture 类打开输入视频文件并读取每一帧。使用 OpenCV 的 VideoWriter 类创建输出视频文件并指定视频编码器、帧率和大小。使用 OpenCV 的 imread 函数读取水印图像。遍历视频的每一帧在每一帧上叠加水印图像。根据指定的位置参数确定水印的位置并将水印图像叠加到视频帧的相应位置上。使用 OpenCV 的 addWeighted 函数将水印图像叠加到视频帧上实现透明度叠加效果。将带有水印的视频帧写入输出视频文件。 涉及了一些关键函数 cv2.VideoCapture(): 用于打开视频文件并创建一个视频捕获对象。在这里它被用于打开输入视频文件并创建一个用于读取帧的视频捕获对象。 cap.isOpened(): 用于检查视频是否成功打开。在这里它被用于检查输入视频文件是否成功打开。 cap.read(): 用于读取视频的下一帧。在这里它被用于循环遍历视频的每一帧并读取帧内容。 cv2.VideoWriter(): 用于创建一个视频写入对象可以将帧写入视频文件。在这里它被用于创建一个用于写入帧的视频写入对象。 cv2.imread(): 用于读取图像文件。在这里它被用于读取水印图像文件。 cv2.imwrite(): 用于将图像写入文件。虽然在这里没有直接使用但可以用它来保存添加水印后的帧。 cv2.putText(): 用于向图像中添加文字。在这里虽然没有直接使用但可以用它来添加文字水印。 cv2.addWeighted(): 用于将两个图像进行加权叠加。在这里它被用于将水印图像叠加到视频帧上。 cap.release(): 用于释放视频捕获对象的资源。 out.release(): 用于释放视频写入对象的资源。 cv2.destroyAllWindows(): 用于关闭所有窗口通常在程序结束时调用。 三、简单给视频添加水印图片效果案例实现简单步骤 1、编写代码 2、运行效果 3、具体代码 简单给视频添加水印图片效果1、打开输入视频文件并获取其每一帧的大小。2、打开水印图像文件并获取其大小。3、遍历视频的每一帧将水印图像叠加到视频帧上。4、根据指定的位置参数确定水印在视频帧上的位置并将水印图像叠加到相应的位置上。5、将带有水印的视频帧写入输出视频文件。 import cv2 import osdef add_watermark_to_video(input_video_path, output_video_path, watermark_image_path, alpha1.0,positionbottom-right):简单给视频添加水印图片效果:param input_video_path: 原视频路径:param output_video_path: 添加水印后保存视频路径:param watermark_image_path: 水印图片路径:param alpha: 控制水印整体透明度的参数范围为 0 到 1:param position: 控制水印位置的参数可选值包括 top-left, top-right, bottom-left, center, bottom-right:return:# 检查输入视频文件是否存在if not os.path.isfile(input_video_path):print(Error: Input video file does not exist.)return# 检查水印图像文件是否存在if not os.path.isfile(watermark_image_path):print(Error: Watermark image file does not exist.)return# 打开视频文件cap cv2.VideoCapture(input_video_path)# 检查视频是否成功打开if not cap.isOpened():print(Error: Failed to open input video.)return# 获取视频的宽度和高度width int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))height int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 创建VideoWriter对象用于写入输出视频fourcc cv2.VideoWriter_fourcc(*mp4v)out cv2.VideoWriter(output_video_path, fourcc, 30.0, (width, height))# 读取水印图像watermark cv2.imread(watermark_image_path, cv2.IMREAD_UNCHANGED)# 检查水印图像是否成功读取if watermark is None:print(Error: Failed to read watermark image.)return# 检查水印图像的透明度通道是否存在if watermark.shape[2] 4:print(Error: Watermark image does not have an alpha channel.)return# 循环遍历视频的每一帧while True:ret, frame cap.read()if not ret:break# 将水印叠加到当前帧上overlay frame.copy()h, w watermark.shape[:2]# 根据位置参数确定水印的位置if position top-left:x_offset, y_offset 10, 10elif position top-right:x_offset, y_offset width - w - 10, 10elif position bottom-left:x_offset, y_offset 10, height - h - 10elif position center:x_offset, y_offset (width - w) // 2, (height - h) // 2else: # 默认为 bottom-rightx_offset, y_offset width - w - 10, height - h - 10for c in range(0, 3):overlay[y_offset:y_offset h, x_offset:x_offset w, c] \watermark[:, :, c] * (watermark[:, :, 3] / 255.0 * alpha) frame[y_offset:y_offset h,x_offset:x_offset w, c] * (1.0 - watermark[:, :, 3] / 255.0 * alpha)# 将帧写入输出视频out.write(overlay)# 释放资源cap.release()out.release()cv2.destroyAllWindows()def main():# 调用函数并指定输入和输出视频文件路径以及水印图像路径input_video_path Videos/CatRun.mp4output_video_path Videos/CatRun_Wartermark.mp4watermark_image_path Images/Watermark.pngalpha 0.5 # 控制水印整体透明度的参数范围为 0 到 1position top-right # 控制水印位置的参数可选值包括 top-left, top-right, bottom-left, center, bottom-right# 执行函数add_watermark_to_video(input_video_path, output_video_path, watermark_image_path, alpha, position)if __name__ __main__:main()四、注意事项 参数安全性对于输入的参数需要进行安全校验以确保输入的参数值在有效范围内避免出现错误。图像大小匹配确保水印图像的大小与视频帧的大小匹配否则可能导致叠加时的错误。透明度处理根据水印图像的透明度信息合理处理水印图像与视频帧的叠加透明度以保持水印的透明效果。位置处理根据指定的位置参数确保水印图像叠加到视频帧的正确位置上避免覆盖重要信息或者显示不完整。资源释放在处理完所有帧之后及时释放视频读取和写入的资源以避免内存泄漏或资源浪费。
http://www.zqtcl.cn/news/821419/

相关文章:

  • 大连网站备案高品质网站建设公司
  • 建站模板哪个好网站添加子域名
  • html5创意网站创建网站公司好
  • php网站开发外文旅游电子商务网站的品牌建设
  • 陕西西安网站建设公司哪家好网页框架是什么
  • 广东网站建设效果安福网站建设
  • 如何将html发布到网站微帮网免费发布信息网
  • 做个网站西安专业网络推广公司
  • 建设网站cms网站开发后台需要自己写吗
  • 天津协会网站建设学计算机的做网站的叫什么工作
  • 商城网站建设缺点淘宝店铺怎么免费推广
  • 利于优化的网站模板360建筑网密码忘了
  • 商务网站建设找哪家网页设计商品页面制作
  • 连云港网站建设方案大型门户网站多少钱
  • win7 iis设置网站首页网站建设攵金手指科杰壹陆
  • 阿里巴巴网站建设的功能定位手机在线制作图片加字
  • 网站联系我们的地图怎么做的电子商务网站建设完整案例教程
  • 北京学习网站建设湖北省建设厅政务公开网站
  • 推广做网站联系方式贵州省领导班子名单一览表
  • 厦门的网站建设公司徐州城乡建设局网站
  • 天津圣辉友联网站建设南昌本地生活网站有哪些
  • 境外社交网站上做推广上海网站建设的价格低
  • 山西专业网站建设大全高校网站群建设研究
  • 网络营销网站建设流程网站功能设计指什么
  • 企业网络推广网站琼海市建设局网站
  • 移动网站搭建网页设计页面设计
  • 建设网站进行商品营销的重要性恢复正常百度
  • 美容会所网站模板下载jsp网站开发实现增删改查
  • 注册网站需要注意什么深圳建站公司兴田德润官网多少
  • 广东网站优化布吉做棋牌网站建设有哪些公司