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

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

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel