实现方法

通过对rgb三个颜色分量的调整可以将照片处理成一种老照片的怀旧风格。调整的公式如下

注意:该公式可能不匹配所有图片需要根据情况调整rgb三个通道的比例

问题

  • 在复古滤镜处理过程中会出现下图的现象,是因为在三个通道中蓝色的比例过大了,所有在代码中我对实现方法中的公式进行了改进

实现效果

代码实现

    #复古滤镜
def to_old(image):print("复古滤镜")height = image.shape[0]width = image.shape[1]channels = image.shape[2]print("channels : ", channels);print(image.shape)for row in range(height):for col in range(width):blue = image[row, col, 0]green = image[row, col, 1];red = image[row, col, 2]r = (0.393*red + 0.669*green + 0.049*blue);g = (0.349*red + 0.686*green + 0.048*blue);b = (0.272*red + 0.534*green + 0.011*blue);image[row, col, 0] = b;image[row, col, 1] = g;image[row, col, 2] = r;cv.imshow("old image", image)src = cv.imread("people.png")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
to_old(src)
cv.waitKey(0)
cv.destroyAllWindows()

【opencv入门】简单复古滤镜(python实现)相关推荐

  1. OpenCV入门教程之开发环境搭建(Android、C/C++、Python)

    文章目录 opencv Android搭建OpenCV开发环境 自己写C/C++调用OpenCV实现 小编已经在gayhub开源了一个轮子,可直接使用:一个最简单.免搭建的Android OpenCV ...

  2. 使用Python,OpenCV实现简单的场景边界/拍摄转换检测器

    使用Python,OpenCV进行简单的场景边界/拍摄转换检测器 1. 效果图 2. 实现 2.1 步骤 2.2 什么是"场景边界"和"拍摄过渡"? 2.3 代 ...

  3. [Python图像处理] 一.图像处理基础知识及OpenCV入门函数

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. python人像和图片比对_python 使用OpenCV进行简单的人像分割与合成

    实现思路 通过背景建模的方法,对源图像中的动态人物前景进行分割,再将目标图像作为背景,进行合成操作,获得一个可用的合成影像. 实现步骤如下. 使用BackgroundSubtractorMOG2进行背 ...

  5. python opencv 绘制简单图形

    09-python opencv 绘制简单图形 09-python opencv 绘制简单图形 概述 实现过程 引用与创建空图 绘制直线 绘制矩形 绘制圆 绘制椭圆 添加文字 显示图像 源代码 运行结 ...

  6. Python Opencv 之 简单的视频裁剪功能的实现

    Python Opencv 之 简单的视频裁剪功能的实现 目录 Python Opencv 之 简单的视频裁剪功能的实现 一.简单介绍 二.实现原理 三.注意实现 四.效果预览 五.实现步骤 这里实现 ...

  7. 【学习OpenCV4】OpenCV入门精讲(C++/Python双语教学)

    大家好,我在CSDN开的OpenCV课程已经开课了,入口如下: OpenCV入门精讲(C++/Python双语教学) 课程开始快一周了,收到了广大同学们的欢迎. (1)评分很高: (2)已经有50+同 ...

  8. opencv自动裁切_荐Python Opencv 之 简单的视频裁剪功能的实现

    Python Opencv 之 简单的视频裁剪功能的实现 目录 一.简单介绍 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随 ...

  9. opencv学习—简单车牌识别操作(python)

    opencv学习-简单车牌识别操作(python) 目录 opencv学习-简单车牌识别操作(python) 利用opencv进行车牌识别的详细流程如下: 1.车牌检测 2.分割车牌号并进行识别 3. ...

最新文章

  1. VS2010,mvc架构详解(英文版的哦)
  2. C++ sizeof与strlen
  3. numpy np.polyfit()(最小二乘多项式拟合曲线)(有待进一步研究)
  4. ie浏览器ip代理怎么设置
  5. Windows Live Writer 2012离线发布WP文章教程
  6. 【Linux_Fedora_应用系列】_1_如何安装音乐播放器和mp3解码
  7. struts2 Unable to load configuration
  8. ImportError: cannot import name ‘abs‘
  9. 环境配置系列五Linux.Fedora9.配置
  10. 智维专业工程师告诉你,哪款Kvaser多通道CAN总线分析仪性价比最高?
  11. 采用曼码调制的非接触式IC卡译码软件设计
  12. 阅读笔记--计算机网络 自顶向下方法
  13. 【转】电脑电源如何安装 (清晰大图详解电脑组装时各接口线缆细节)
  14. 关于COM中变体类型VARIANT
  15. 香港汇丰银行开户需要提供什么资料
  16. 中国合伙人及致青春电影名言
  17. 论文浅尝 | 利用常识知识图谱进行多跳推理的语言生成方法
  18. swing图形用户界面设计
  19. sql查询每天整点时间的数据
  20. python打包的exe如何免杀_使用Python进行防病毒免杀

热门文章

  1. android 双卡开发获取sim卡默认数据卡,获取sim卡信息,sim1卡,sim2卡 2G/3G/4G信号强度
  2. 关于Token过期的问题
  3. C语言 编写一个统计空格,制表符与换行符个数的程序
  4. 牛B!纯 CSS 制作赛博朋克 2077 “故障风”按钮
  5. 交换机高级特性之MUX-VLAN(多路VLAN)
  6. SWT学生成绩管理系统(转)
  7. 微信小程序错误readFile:fail parameter error: parameter.filePath should be String instead of Undefined;...
  8. H5跳转微信小程序教程
  9. C语言随机生成成绩排序,如何实现以下功能给出1000个通过随机数生成的数据,分别用直接插入排序法、冒泡排序法、快速排序法进行排序...
  10. k8s学习笔记之 k8s架构的简单了解(转载网上电子书)