热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享Opencv马赛克和毛玻璃效果与图片融合的实现

1.马赛克效果马赛克的基本原理就是,用某一个区域的某一个像素点替代这个区域所有的像素点,从而导致图片出现模糊的效果,如下:importcv2#马赛克效果imgcv2.imread(

1.马赛克效果

马赛克的基本原理就是,用某一个区域的某一个像素点替代这个区域所有的像素点,从而导致图片出现模糊的效果,如下:

Opencv 马赛克和毛玻璃效果与图片融合的实现

  import cv2      # 马赛克效果  img = cv2.imread(filename='../anqila21.jpg',flags=1)  imginfo = img.shape  height = imginfo[0]  width = imginfo[1]  flag = 2   # 系数,系数越小,马赛克的效果越不明显  for m in range(26,height):      for n in range(140,880):          if m%flag==0 and n%flag==0:              for i in range(0,flag):                  for j in range(0,flag):                      (b,g,r) = img[m,n]                      img[i+m,j+n] = (b,g,r)    cv2.imshow('dst',img)  cv2.waitkey(0)  

Opencv 马赛克和毛玻璃效果与图片融合的实现

Opencv 马赛克和毛玻璃效果与图片融合的实现

2. 毛玻璃效果

  import cv2  import numpy as np  import random    # 毛玻璃效果  img = cv2.imread(filename='../anqila21.jpg',flags=1)  imginfo = img.shape  height = imginfo[0]  width = imginfo[1]  dst = np.zeros((height,width,3),np.uint8)  for i in range(height-8):      for j in range(width-8):          index = int(random.random()*8)  # 生成0-8之间的随机数(不包括8)          dst[i, j] = img[i+index,j+index]  cv2.imshow('dst',dst)  cv2.waitkey(0)  

Opencv 马赛克和毛玻璃效果与图片融合的实现

3. 图片的融合

就是将两张图片融合到一张图片上,即可看到第一张图片的效果,也可以看到第二张图片的效果。

  import cv2    img_1 = cv2.imread(filename='../anqila21.jpg',flags=1)  img_2 = cv2.imread(filename='../huanghe.jpg',flags=1)  imginfo = img_1.shape  height = imginfo[0]  width = imginfo[1]  # roi  roi = 0.5  dst = cv2.addweighted(img_1,roi,img_2,(1-roi),0)  cv2.imshow('dst',dst)  cv2.waitkey(0)  

Opencv 马赛克和毛玻璃效果与图片融合的实现

算法实现

  import cv2  import numpy as np    img_1 = cv2.imread(filename='../anqila21.jpg',flags=1)  img_2 = cv2.imread(filename='../huanghe.jpg',flags=1)  imginfo = img_1.shape  height = imginfo[0]  width = imginfo[1]  # roi  roi = 0.5  dst = np.zeros((height,width,3),np.uint8)    for i in range(height):      for j in range(width):          (b1,g1,r1) = img_1[i,j]          (b2,g2,r2) = img_2[i,j]          dst[i,j] = (int(b1*roi+b2*(1-roi)),int(g1*roi+g2*(1-roi)),int(r1*roi+r2*(1-roi)))    cv2.imshow('dst',dst)  cv2.waitkey(0)    

Opencv 马赛克和毛玻璃效果与图片融合的实现

以上就是opencv 马赛克和毛玻璃效果与图片融合的实现的详细内容,更多关于opencv 的资料请关注<编程笔记>其它相关文章!

需要了解更多python教程分享Opencv 马赛克和毛玻璃效果与图片融合的实现,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 每年,意甲、德甲、英超和西甲等各大足球联赛的赛程表都是球迷们关注的焦点。本文通过 Python 编程实现了一种生成赛程表的方法,该方法基于蛇形环算法。具体而言,将所有球队排列成两列的环形结构,左侧球队对阵右侧球队,首支队伍固定不动,其余队伍按顺时针方向循环移动,从而确保每场比赛不重复。此算法不仅高效,而且易于实现,为赛程安排提供了可靠的解决方案。 ... [详细]
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 短信验证码安全性堪忧,多因素认证或成未来主流
    短信验证码安全性堪忧,多因素认证或成未来主流 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 本文探讨了一种高效的算法,用于生成所有数字(0-9)的六位组合,允许重复使用数字,并确保这些组合的和等于给定的整数N。该算法通过优化搜索策略,显著提高了计算效率,适用于大规模数据处理和组合优化问题。 ... [详细]
  • Python进阶笔记:深入理解装饰器、生成器与迭代器的应用
    本文深入探讨了Python中的装饰器、生成器和迭代器的应用。装饰器本质上是一个函数,用于在不修改原函数代码和调用方式的前提下为其添加额外功能。实现装饰器需要掌握闭包、高阶函数等基础知识。生成器通过 `yield` 语句提供了一种高效生成和处理大量数据的方法,而迭代器则是一种可以逐个访问集合中元素的对象。文章详细解析了这些概念的原理和实际应用案例,帮助读者更好地理解和使用这些高级特性。 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • Python 编程技巧:实现字符串中字符大小写的转换 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 本文详细介绍了在C#编程环境中绘制正方形图像的技术和实现方法,通过具体示例代码帮助读者理解和掌握相关技巧。内容涵盖从基础概念到实际应用的各个方面,适合初学者和有一定经验的开发者参考。希望对您的C#学习之旅有所帮助,并激发您进一步探索的兴趣。 ... [详细]
  • 在编程笔试和面试中,全排列算法因其适中的难度而备受青睐,不仅能够考察应聘者的算法基础,还能测试其对递归和回溯的理解。本文将深入解析全排列算法的实现原理,探讨其应用场景,并提供优化建议,帮助读者更好地掌握这一重要算法。 ... [详细]
  • 本课程深入探讨了 Python 中自定义序列类的实现方法,涵盖从基础概念到高级技巧的全面解析。通过实例演示,学员将掌握如何创建支持切片操作的自定义序列对象,并了解 `bisect` 模块在序列处理中的应用。适合希望提升 Python 编程技能的中高级开发者。 ... [详细]
  • 利用Python进行学生学业表现评估与成绩预测分析
    利用Python进行学生学业表现评估与成绩预测分析 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 在Python多进程编程中,`multiprocessing`模块是不可或缺的工具。本文详细探讨了该模块在多进程管理中的核心原理,并通过实际代码示例进行了深入分析。文章不仅总结了常见的多进程编程技巧,还提供了解决常见问题的实用方法,帮助读者更好地理解和应用多进程编程技术。 ... [详细]
author-avatar
苏小丫123_877
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有