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

获得不同干扰程度的模糊图像

同时对一共父级文件夹遍历。获得对应不同干扰程度的模糊图像

# This isimport cv2
import numpy as npdef reduce_resolution(image, factor):height, width, _ = image.shape    # 获取原始图像的宽度和高度new_width = int(width / factor) # 计算新的宽度和高度new_height = int(height / factor)# 使用resize方法来缩小图像分辨率,保持尺寸不变resized_image = cv2.resize(image, (new_width, new_height), interpolation=cv2.INTER_AREA)return resized_imagedef motion_blur(image, degree=12, angle=45):image = np.array(image)# 这里生成任意角度的运动模糊kernel的矩阵, degree越大,模糊程度越高M = cv2.getRotationMatrix2D((degree / 2, degree / 2), angle, 1)motion_blur_kernel = np.diag(np.ones(degree))motion_blur_kernel = cv2.warpAffine(motion_blur_kernel, M, (degree, degree))motion_blur_kernel = motion_blur_kernel / degreeblurred = cv2.filter2D(image, -1, motion_blur_kernel)# convert to uint8cv2.normalize(blurred, blurred, 0, 255, cv2.NORM_MINMAX)blurred = np.array(blurred, dtype=np.uint8)return blurredimg = cv2.imread(r'H:\LRFRcode\acrface-bubb\arcface-pytorch-main\ForPaper1_Images_Crop\N010\N010_0008__Gaus2.jpg')idex = 15
Image_perturbation_Gaussian_idex = 1.02*idex
Image_perturbation_Motion_idex = 3*idex
Image_perturbation_reduceresolution_idex = 1.1*idex#
Gaussian_blurred_image = cv2.GaussianBlur(img, ksize=(0,0), sigmaX=Image_perturbation_Gaussian_idex) # ksize 必须是一个正奇数,可以通过 (0, 0) 来自动计算核的大小
Motion_blurred_image = motion_blur(img, degree=Image_perturbation_Motion_idex, angle=45)
reduce_resolution_image = reduce_resolution(img, factor=Image_perturbation_reduceresolution_idex)# cv2.imshow('Original', img)
# cv2.imshow('Gaussian Filter', Gaussian_blurred_image)
# cv2.imshow('Motion Filter', Motion_blurred_image)
# cv2.imshow('reduce_resolution Filter', reduce_resolution_image)
#
# cv2.waitKey(0)
# cv2.destroyAllWindows()# 保存图像
cv2.imwrite("save/Gaussian_blurred_image" + str(Image_perturbation_Gaussian_idex) +".jpg", Gaussian_blurred_image)  # 保存降低分辨率后的图像
cv2.imwrite("save/Motion_blurred_image" + str(Image_perturbation_Motion_idex) +".jpg", Motion_blurred_image)  # 保存降低分辨率后的图像
cv2.imwrite("save/reduced_resolution_image_" + str(Image_perturbation_reduceresolution_idex) +".jpg", reduce_resolution_image)  # 保存降低分辨率后的图像
http://www.lryc.cn/news/232776.html

相关文章:

  • spring为什么要使用三级缓存来解决循环依赖
  • 【自留地】前端 - uniapp - Vue - React - Flutter
  • 深度学习损失函数
  • 百度智能云正式上线Python SDK版本并全面开源
  • Elasticsearch的配置学习笔记
  • LeetCode(25)验证回文串【双指针】【简单】
  • Android设计模式--工厂模式
  • EasyExcel入门使用教程
  • Golang实现一个一维结构体,根据某个字段排序
  • python语言实现背包问题动态规划
  • 将Python程序(.py)转换为Windows可执行文件(.exe)
  • Oracle 查找非系统用户结合了10,11,12,19
  • c++虚函数纯虚函数详解加代码解释
  • kotlin retrofit
  • Web 开发中 route 和 router 有什么区别?
  • VBA技术资料MF83:将Word文档批量另存为PDF文件
  • 通信原理板块——脉冲编码调制(PCM)
  • 绕过类安全问题分析方法
  • 基于STC12C5A60S2系列1T 8051单片的IIC总线器件数模芯片PCF8591实现数模转换应用
  • 2023年中国骨质疏松治疗仪发展趋势分析:小型且智能将成为产品优化方向[图]
  • 并发编程之生产者消费者模型
  • Java要将字符串转换为Map
  • 2760. 最长奇偶子数组 --力扣 --JAVA
  • JVM——运行时数据区(程序计数器+栈)
  • 【C++】数组中出现次数超过一半的数字
  • 3GPP协议解读(一)_23.501_23.502_PDU Session_SMF与UDP的交互
  • 天池2023智能驾驶汽车虚拟仿真视频数据理解--baseline
  • C++入门(1)—命名空间、缺省参数
  • 以程序员的身份使用curl获取速卖通详情
  • Java设计模式-结构型模式-装饰模式