门户网站开发解决方案福田公司门口

news/2025/9/25 16:17:02/文章来源:
门户网站开发解决方案,福田公司门口,网站地址英文,建设网站需要准备什么手续标题线性位置不变退化估计退化函数采用观察法估计退化函数采用试验法估计退化函数采用建模法估计退化函数运动模糊函数OpenCV Motion Blur在这一节中#xff0c;得到的结果#xff0c;有些不是很好#xff0c;我需要再努力多找资料#xff0c;重新完成学习#xff0c;如果… 标题线性位置不变退化估计退化函数采用观察法估计退化函数采用试验法估计退化函数采用建模法估计退化函数运动模糊函数OpenCV Motion Blur在这一节中得到的结果有些不是很好我需要再努力多找资料重新完成学习如果大佬有相关资料推荐不胜感激。 线性位置不变退化 # 巴特沃斯带阻陷波滤波器 BNRF img_temp np.zeros([512, 512]) BNF_1 butterworth_notch_resistant_filter(img_temp, radius20, uk-80, vk60) BNF_2 butterworth_notch_resistant_filter(img_temp, radius10, uk30, vk80) BNF_3 butterworth_notch_resistant_filter(img_temp, radius10, uk-30, vk80)plt.figure(figsize(16, 16)) plt.subplot(221), plt.imshow(BNF_1, gray), plt.title(BNF_1) plt.subplot(222), plt.imshow(BNF_2, gray), plt.title(BNF_2) plt.subplot(223), plt.imshow(BNF_3, gray), plt.title(BNF_3)BNF_dst BNF_1 * BNF_2 * BNF_3plt.subplot(224), plt.imshow(BNF_dst, gray), plt.title(BNF_dst)plt.tight_layout() plt.show()估计退化函数 In this section, I think I still got some problem have to sort out, when I have some more time or some more reading. 采用观察法估计退化函数 选择一个信号内容很强的区域如一个高对比度区域表示为g(x,y)g(x, y)g(x,y)令f^(x,y)\hat{f}(x, y)f^​(x,y)表示为处理后的子图像则有 Hs(u,v)Gs(u,v)F^s(u,v)(5.66)H_{s}(u, v) \frac{G_{s}(u, v)}{\hat{F}_{s}(u, v)} \tag{5.66}Hs​(u,v)F^s​(u,v)Gs​(u,v)​(5.66) 根据位置不变的假设来推断完整的退化函数H(u,v)H(u, v)H(u,v) 采用试验法估计退化函数 一个冲激由一个亮点来模拟这个点应亮到能降低噪声对可忽略值的影响。一个冲激的傅里叶变换是一个常量 H(u,v)G(u,v)A(5.67)H(u, v) \frac{G(u, v)}{A} \tag{5.67}H(u,v)AG(u,v)​(5.67) # 试验法估计退化函数 img_impulse cv2.imread(DIP_Figures/DIP3E_Original_Images_CH05/Fig0524(a)(impulse).tif, 0) img_blurred cv2.imread(DIP_Figures/DIP3E_Original_Images_CH05/Fig0524(b)(blurred-impulse).tif, 0)fig plt.figure(figsize(10, 5)) plt.subplot(1, 2, 1), plt.imshow(img_impulse, cmapgray), plt.xticks([]), plt.yticks([]) plt.subplot(1, 2, 2), plt.imshow(img_blurred, cmapgray), plt.xticks([]), plt.yticks([]) plt.tight_layout() plt.show()下面两个例子你会看到傅立叶变换后频谱图像的美。把频谱图像上了颜色后更是美极啦 # 傅里叶变换 fp_impulse pad_image(img_impulse) impluse_cen centralized_2d(fp_impulse) fft_impulse np.fft.fft2(impluse_cen) impulse_spectrume np.log(1 spectrum_fft(fft_impulse))fp_blurred pad_image(img_blurred) blurred_cen centralized_2d(fp_blurred) fft_blurred np.fft.fft2(blurred_cen) blurred_spectrum np.log(1 spectrum_fft(fft_blurred))H fft_blurred / fft_impulseh_spectrum np.log(1 spectrum_fft(H)) h_spectrum h_spectrum / h_spectrum.max()fig plt.figure(figsize(15, 5)) plt.subplot(1, 3, 1), plt.imshow(impulse_spectrume, cmapgray), plt.xticks([]), plt.yticks([]) plt.subplot(1, 3, 2), plt.imshow(blurred_spectrum, cmapgray), plt.xticks([]), plt.yticks([]) plt.subplot(1, 3, 3), plt.imshow(h_spectrum, cmapgray), plt.xticks([]), plt.yticks([]) plt.tight_layout() plt.show()# 一些傅里叶变换 img_temp np.zeros([256, 256]) # H butterworth_low_pass_filter(img_temp, 10, 500) H 1 - butterworth_band_resistant_filter(img_temp, img_temp.shape, radius50, w5, n5) fp_blurred pad_image(H) blurred_cen centralized_2d(fp_blurred) fft_blurred np.fft.fft2(blurred_cen) blurred_spectrum np.log(1 spectrum_fft(fft_blurred))fig plt.figure(figsize(15, 15)) plt.imshow(blurred_spectrum, cmapPiYG), plt.xticks([]), plt.yticks([]) # plt.savefig(bbrf_4.png, dpi300, quality100) # plt.subplot(1, 3, 1), plt.imshow(impulse_spectrume, cmapgray), plt.xticks([]), plt.yticks([]) # plt.subplot(1, 3, 2), plt.imshow(blurred_spectrum, cmapgray), plt.xticks([]), plt.yticks([]) # # plt.subplot(1, 3, 3), plt.imshow(h_spectrum, cmapgray), plt.xticks([]), plt.yticks([]) plt.tight_layout() plt.show()采用建模法估计退化函数 H(u,v)e−k(u2v2)56(5.68)H(u,v) e^{-k(u^2 v^2)^{\frac{5}{6}}} \tag{5.68}H(u,v)e−k(u2v2)65​(5.68) 关于频率矩形的中心可用如下函数 H(u,v)e−k((u−P/2)2(v−Q/2)2)56H(u, v) e^{-k((u - P/2)^2 (v - Q/2)^2 \ \ )^{\frac{5}{6}}}H(u,v)e−k((u−P/2)2(v−Q/2)2  )65​ 参加书上P247页运动导的图像模糊的退化过程是否用错 这个问题已经得到解决啦解决方案如下。 def modeling_degrade(img, k1):modeling degradation fuction, math: $$H(u,v) e^{-k(u^2 v^2)^{\frac{5}{6}}}$$param: img: input imgparam: k: N, M img.shape[:2]u np.arange(M)v np.arange(N)u, v np.meshgrid(u, v)temp (u - M//2)**2 (v - N//2)**2kernel np.exp(-k * np.power(temp, 5/6))return kernel# 不填充结果与书上一致啦 def get_degenerate_image(img, img_deg):不填充图像做傅里叶变换后与退化函数做乘积再反傅里叶变换# FFT--------------------------------------------fft np.fft.fft2(img)# FFT * H(u, v)----------------------------------fft_huv fft * img_deg# IFFT-------------------------------------------ifft np.fft.ifft2(fft_huv)return ifftimg_ori cv2.imread(DIP_Figures/DIP3E_Original_Images_CH05/Fig0525(a)(aerial_view_no_turb).tif, 0)# k [1, 0.1, 0.01, 0.001, 0.0025, 0.00025] k [0.0025, 0.001, 0.00025]fp_cen centralized_2d(img_ori)fig plt.figure(figsize(12, 12)) for i in range(len(k) 1):ax fig.add_subplot(2, 2, i1, xticks[], yticks[])if i 0:ax.imshow(img_ori, gray), ax.set_title(fOriginal)else:img_deg modeling_degrade(fp_cen, kk[i-1])ifft get_degenerate_image(fp_cen, img_deg)img_new centralized_2d(ifft.real)img_new np.clip(img_new, 0, img_new.max())img_new np.uint8(normalize(img_new) * 255)ax.imshow(img_new, gray)ax.set_title(fk {k[i-1]}) plt.tight_layout() plt.show() 运动模糊函数 H(u,v)Tπ(uavb)sin[π(uavb)]e−jπ(uavb)H(u,v) \frac{T}{\pi(ua vb)}sin[\pi(uavb)]e^{-j\pi(uavb)}H(u,v)π(uavb)T​sin[π(uavb)]e−jπ(uavb) 下面的代码可能比较混乱因为实验过程而得出的结果不太好还没有整理。需要继续学习后再完成整理。 img_ori cv2.imread(DIP_Figures/DIP3E_Original_Images_CH05/Fig0526(a)(original_DIP).tif, 0)def motion_huv(img, a, b, T):eps 1e-8M, N img.shape[1], img.shape[0]u np.arange(1, M1)v np.arange(1, N1)u, v np.meshgrid(u, v)temp np.pi * (u * a v * b)kernel (T * np.sin(temp) * np.exp(-temp*1j) /(temp eps))return kernel# 对图片进行运动模糊 def make_blurred(img, PSF, eps):# # fft np.fft.fft2(img) # # fft_shift np.fft.fftshift(fft)# fft_psf fft * PSF# ifft np.fft.ifft2(fft_psf) # # ifft_shift np.fft.ifftshift(ifft) # blurred abs(ifft.real)#M, N img.shape[:2]fp pad_image(img, modeconstant)fp_cen centralized_2d(fp)img_fft np.fft.fft2(fp_cen)img_fft_psf img_fft * PSFifft np.fft.ifft2(img_fft_psf)blurred centralized_2d(ifft.real)[:N, :M] # # blurred ifft.real[:N, :M]return blurreddef get_motion_dsf(image_size, motion_angle, motion_dis):PSF np.zeros(image_size) # 点扩散函数x_center (image_size[0] - 1) / 2y_center (image_size[1] - 1) / 2sin_val np.sin(motion_angle * np.pi / 180)cos_val np.cos(motion_angle * np.pi / 180)# 将对应角度上motion_dis个点置成1for i in range(motion_dis):x_offset round(sin_val * i)y_offset round(cos_val * i)PSF[int(x_center - x_offset), int(y_center y_offset)] 1return PSF / PSF.sum() # 归一化img_motion get_motion_dsf((480, 480), 70, 200)plt.figure(figsize(10, 8)) plt.subplot(121), plt.imshow(img_motion,gray), plt.title(img_motion) plt.show()OpenCV Motion Blur def motion_blur(image, degree12, angle45):create motion blur using opencvparam: image: input imageparam: degree: the size of the blurryparam: angle: blur anglereturn uint8 imageimage 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, dtypenp.uint8)return blurred# 运动模糊图像 img_ori cv2.imread(DIP_Figures/DIP3E_Original_Images_CH05/Fig0526(a)(original_DIP).tif, 0)img_blur motion_blur(img_ori, degree75, angle15)plt.figure(figsize(12, 8)) plt.subplot(121), plt.imshow(img_ori,gray), plt.title(img_deg) plt.subplot(122), plt.imshow(img_blur,gray), plt.title(high_pass) plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鹤山市城乡住房建设部网站照着别人网站做

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 解题思路 剑指offer的解法 看到这个题目&#xff0…

comfyui-数字人

comfyui-数字人sonic。 1、安装sonic相关插件 模型 2-1 、 图 +音频 生成数字人口播 正面的清晰的照片 , sonic 会按音频的内容 识别 生成对应的视频 2-2 ,只有一张图, +文字的话。 先文字 生成音频 。 音频+图片…

我天,前端岗要消亡了吗?

大家好,我是R哥。 之前分享过一篇文章:前端岗、测试岗即将消亡!阿里菜鸟国际后端研发全员转全栈有的大厂靠成熟的低代码、测试平台,逐渐把前端、测试边缘化了,比如阿里菜鸟国际后端研发全员转全栈这个事,说明前端…

java8的集合新API - --

https://blog.csdn.net/m0_37989980/article/details/126091233

基于MATLAB/Simulink的500kW三相光伏逆变器仿真

一、系统架构设计 1.1 主电路拓扑 graph LR A[光伏阵列] -->|直流母线| B(DC-DC转换器) B -->|800V DC| C[三电平NPC逆变桥] C -->|LCL滤波器| D[380V电网] 1.2 核心模块组成DC-DC模块:Boost电路+MPPT控制 逆…

重庆seo整站优化设置网页游戏破解版

前言 在我们日常工作中,经常会遇到一些异常,比如:NullPointerException、NumberFormatException、ClassCastException等等。 那么问题来了,我们该如何处理异常,让代码变得更优雅呢? 1 不要忽略异常 不知…

做cps需要什么样的网站asp建站软件

跟数据类型是有关的。当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。但是不是所有的变动都可以通过set/get捕捉到,比如一个数组l…

Docker Compose启动多个镜像实例

1. Docker Compose 基础概念Docker Compose 是一个工具,用 YAML 文件定义和运行 多容器 Docker 应用。核心文件:docker-compose.yml通过一个命令可以启动、停止、管理整个应用,而不必一个一个容器操作。Compose 文件…

深入解析:⸢ 伍-Ⅱ⸥ ⤳ 默认安全治理实践:水平越权检测 前端安全防控

深入解析:⸢ 伍-Ⅱ⸥ ⤳ 默认安全治理实践:水平越权检测 & 前端安全防控pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fa…

实用指南:在 CentOS 中安装 MySQL

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

卫星时间同步平台:助力分布式测控系统同步工作

卫星时间同步平台:助力分布式测控系统同步工作pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

mkfx 对磁盘设置标签

mkfs.xfs -i size=512 -n ftype=1 -L RUSTFS0 /dev/sdb -L <label>: 为文件系统设置一个标签(label),方便后续识别和挂载。-i size=512: RustFS官方推荐将inode大小设置为512字节,这对于存储大量小对象(元…

河南网站设计价格阿里云服务器学生

1. 为什么要使用框架 Spring是一个轻量级Java开发框架&#xff0c;最早有Rod Johnson创建&#xff0c;目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 几乎当下所有企业级JavaEE开发都离不开SSM&#xff08;Spring SpringMVC MyBatis&#xff09;Spring B…

C# Avalonia 15- Animation- Easing

C# Avalonia 15- Animation- EasingEasing.axaml代码<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.m…

安卓编译重点记录

Ubuntu18.04编译安卓11详细步骤 在 Ubuntu 18.04 上编译 Android 11 的详细步骤 以下是为 ​Ubuntu 18.04 环境编译 ​Android 11(AOSP)​ 的完整指南,涵盖环境配置、源码下载、编译及常见问题解决。 ​1. 系统要求…

kubelet源码阅读(二)——device plugin 的ListAndWatch过程

从kubelet运行到plugin注册过程 kubernetes-master/pkg/kubelet/kubelet.go1 func (kl *Kubelet) Run(updates <-chan kubetypes.PodUpdate) {2 // ...3 go wait.Until(kl.updateRuntimeUp, 5*time.Second,…

最新网站制作公司哪个好各大网站搜索引擎提交入口

同事电话询问Linux下一个集群内2个主机前后2天相继无响应&#xff0c;表现状况为ping都没响应。因为没任何监控或其他性能数据&#xff0c;故需要获取历史OS性能数据。我们知道rhel5,6下默认可以通过sar命令查看OS历史信息&#xff0c;故执行sar即可看到当天的数据。[rootora11…

网站上的充值链接怎么做的公众号开发者多次群发

《Windows Azure Platform 系列文章目录》 在Windows Azure平台中&#xff0c;用户最多可以对以个Role指定5个Endpoint。而一个Hosted Service最多允许包含5个Role,所以说在一个Hosted Service中用户最多能定义25个Endpoint。 而对于每一个Endpoint&#xff0c;使用者需要设定如…

CyberLink ColorDirector Ultra 2026 14.0.5712.0 视频后期调色

CyberLink ColorDirector 是由中国台湾讯连科技(CyberLink)开发的专业创意视频后期着色软件,核心目标是帮助用户高效改进并增强视频色彩表现。无论是基础的颜色校正、色调调整,还是进阶的视频动态对象局部色彩优化…

CF 1053 Div.2

E. Limited Edition Shop 经过一些简单转化,要解决的是如下问题:二维平面上有 \(n\) 个点,点有点权。\(n\) 个点横坐标、纵坐标都是 \(1\sim n\) 的排列。要求选择若干点,满足它们右下角区域的并集中的点点权和最大…