【个人】项目实训 _ 图片风格_怀旧滤镜

2023-10-18 14:20

本文主要是介绍【个人】项目实训 _ 图片风格_怀旧滤镜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、怀旧滤镜核心代码
  • 二、UI界面
    • 1.更改glass_effect.py文件
    • 2.在对应UI.py文件中添加action
    • 3.在主UI.py文件中添加信号发射函数
  • 三、解决问题
  • 四、参考链接


一、怀旧滤镜核心代码

新建 pasttime_effect.py 文件

import cv2
import numpy as np#读取原始图片
original_image = cv2.imread('2.jpg')# 获取图像的行和列
original_rows, original_cols = original_image.shape[:2]#新建目标图像
pasttime_image = np.zeros((original_rows,original_cols,3),dtype="uint8")#图片怀旧特效
for i in range(original_rows):for j in range(original_cols):B = 0.272*original_image[i,j][2] + 0.534*original_image[i,j][1] + 0.131*original_image[i,j][0]G = 0.349*original_image[i,j][2] + 0.686*original_image[i,j][1] + 0.168*original_image[i,j][0]R = 0.393*original_image[i,j][2] + 0.769*original_image[i,j][1] + 0.189*original_image[i,j][0]if B>255:B=255if G>255:G=255if R>255:R=255pasttime_image[i,j] = np.uint8((B,G,R))# 处理完成,显示图像
cv2.imshow('original_image', original_image)
cv2.imshow('glass_effect_image', pasttime_image)cv2.waitKey()
cv2.destroyAllWindows()

代码思想:

图像怀旧特效是指图像经历岁月的昏暗效果,让图片变的偏黄偏暗,给人以怀旧复古的感觉。

可以利用怀旧 RGB 三色公式计算通道新数值:

    R2 = 0.393*R + 0.769*G + 0.189*BB2 = 0.272*R + 0.534*G + 0.131*BG2 = 0.349*R + 0.686*G + 0.168*B

效果如下:

在这里插入图片描述


二、UI界面

1.更改glass_effect.py文件

def pasttimeeffect_fun(instance):# 读取原始图像original_image = instance.m_image
    instance.m_image = pasttime_imageinstance.updata_image()

2.在对应UI.py文件中添加action

    # 创建一个action,当该action被触发时显示油漆特效处理后的图片action_pasttime_img_show = QAction('&怀旧滤镜', instance)action_pasttime_img_show.triggered.connect(instance.pasttime_effect_emit)# 艺术风格迁移选项新增一个action:怀旧滤镜tempMenu.addAction(action_pasttime_img_show)

3.在主UI.py文件中添加信号发射函数

引入模块

from part3 import m_init_style_transfer,glass_effect,paint_effect,pasttime_effect

定义信号发射函数

    def pasttime_effect_emit(self):pasttime_effect.pasttimeeffect_fun(self)

效果如下:

在这里插入图片描述


三、解决问题

使用界面后发现,效果图片时偏蓝色而非偏黄色,但是核心代码并没有改动。

此时,将核心代码中的 R 与 B 互换位置,即可得到真正的偏黄色的怀旧风格图片。

原因可能是使用界面进入的图片为 RGB 通道而非 BGR 通道。

R = 0.272 * original_image2[i, j][2] + 0.534 * original_image2[i, j][1] + 0.131 * original_image2[i, j][0]
G = 0.349 * original_image2[i, j][2] + 0.686 * original_image2[i, j][1] + 0.168 * original_image2[i, j][0]
B = 0.393 * original_image2[i, j][2] + 0.769 * original_image2[i, j][1] + 0.189 * original_image2[i, j][0]

效果如下:
在这里插入图片描述
成功。


四、参考链接

参考链接:图像处理:怀旧滤镜效果

这篇关于【个人】项目实训 _ 图片风格_怀旧滤镜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233114

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并