Python和C++胶体粒子三维残差算法模型和细化亚像素算法

news2024/11/23 13:42:00

🎯要点

  1. 使用信噪比、对比度噪声比和点扩展函数量化实验数据,增强共聚焦显微镜成像。
  2. 参考粒子跟踪算法:使用二维和三维径向模型细化亚像素。
  3. 胶体粒子三维图形分割学习模型模拟检测球形胶体。
  4. 使用网格搜索优化模型和归一化处理以避免光漂白。

🍪语言内容分比

在这里插入图片描述
在这里插入图片描述

🍇Python去噪平滑

峰值信噪比是一个工程术语,表示信号的最大可能功率与影响其表示保真度的破坏性噪声功率之间的比率。由于许多信号的动态范围非常宽,因此 PSNR 通常使用分贝标度表示为对数值。通常用于量化经过有损压缩的图像和视频的重建质量。

峰值信噪比最容易通过均方误差 (MSE) 来定义。给定一个无噪声的 m × n m \times n m×n 单色图像 I 及其噪声近似值 K , M S E K, M S E K,MSE 定义为
M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 [ I ( i , j ) − K ( i , j ) ] 2 M S E=\frac{1}{m n} \sum_{i=0}^{m-1} \sum_{j=0}^{n-1}[I(i, j)-K(i, j)]^2 MSE=mn1i=0m1j=0n1[I(i,j)K(i,j)]2
峰值信噪比定义为:
P S N R = 10 ⋅ log ⁡ 10 ( M A X I 2 M S E ) = 20 ⋅ log ⁡ 10 ( M A X I M S E ) = 20 ⋅ log ⁡ 10 ( M A X I ) − 10 ⋅ log ⁡ 10 ( M S E ) \begin{aligned} P S N R & =10 \cdot \log _{10}\left(\frac{M A X_I^2}{M S E}\right) \\ & =20 \cdot \log _{10}\left(\frac{M A X_I}{\sqrt{M S E}}\right) \\ & =20 \cdot \log _{10}\left(M A X_I\right)-10 \cdot \log _{10}(M S E) \end{aligned} PSNR=10log10(MSEMAXI2)=20log10(MSE MAXI)=20log10(MAXI)10log10(MSE)
这里, M A X M A X MAX 是图像的最大可能像素值。当像素使用每个样本 8 位表示时,该值为 255 。更一般地,当样本使用每个样本 B B B 位的线性 PCM 表示时, M A X l M A X_l MAXl 2 B − 1 2^B-1 2B1

Python代码化数学定义:

from math import log10, sqrt 
import cv2 
import numpy as np 

def PSNR(original, compressed): 
	mse = np.mean((original - compressed) ** 2) 
	if(mse == 0): 
		return 100
	max_pixel = 255.0
	psnr = 20 * log10(max_pixel / sqrt(mse)) 
	return psnr 

def main(): 
	original = cv2.imread("original_image.png") 
	compressed = cv2.imread("compressed_image.png", 1) 
	value = PSNR(original, compressed) 
	print(f"PSNR value is {value} dB") 
	
if __name__ == "__main__": 
	main() 

PSNR value is 43.862955653517126 dB

Python去噪平滑图像噪声

应用滤波器来减轻各种类型的噪声(如高斯、椒盐、斑点、泊松和指数)来去除图像噪声。我们将利用 Python 的 scipy.ndimage 和 skimage 库来演示均值和中值滤波器在噪声图像上的应用,并使用峰值信噪比 (PSNR) 比较它们的有效性。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from skimage.io import imread
from skimage.color import rgb2gray
from skimage.util import random_noise
from skimage.metrics import peak_signal_noise_ratio as compare_psnr
from scipy.ndimage import uniform_filter, median_filter

我们定义一个函数用于可视化目的。

def plt_hist(noise, title='Noise Histogram', bins=None):
    plt.grid()
    plt.hist(noise.ravel(), bins=bins, alpha=0.5, color='green')
    plt.tick_params(labelsize=15)
    plt.title(title, size=25)

def plt_images(original_img, noisy_img, denoised_mean_img, denoised_median_img, noise, noise_type):
    fig, axes = plt.subplots(1, 4, figsize=(20, 5))
    ax = axes.ravel()

    ax[0].imshow(original_img, cmap='gray')
    ax[0].set_title('Original', size=20)
    ax[0].axis('off')

    ax[1].imshow(noisy_img, cmap='gray')
    ax[1].set_title(f'Noisy ({noise_type})', size=20)
    ax[1].axis('off')

    ax[2].imshow(denoised_mean_img, cmap='gray')
    ax[2].set_title('Denoised (Mean)', size=20)
    ax[2].axis('off')

    ax[3].imshow(denoised_median_img, cmap='gray')
    ax[3].set_title('Denoised (Median)', size=20)
    ax[3].axis('off')

    plt.figure()
    plt_hist(noise, title=f'{noise_type} Noise Histogram')
    plt.show()

    print(f"PSNR (Original vs Noisy): {compare_psnr(original_img, noisy_img):.3f}")
    print(f"PSNR (Original vs Denoised Mean): {compare_psnr(original_img, denoised_mean_img):.3f}")
    print(f"PSNR (Original vs Denoised Median): {compare_psnr(original_img, denoised_median_img):.3f}")

Loading the image and converting to Gray scale
image_path = 'lena.png'  
original_img = rgb2gray(imread(image_path))

去噪

denoised_mean_img = uniform_filter(noisy_img, size=5)
denoised_median_img = median_filter(noisy_img, size=5)
plt_images(original_img, noisy_img, denoised_mean_img, denoised_median_img, noisy_img-original_img, 'Gaussian')

构建自动编码器模型

class Autoencoder(nn.Module):
    def __init__(self):
        super(Autoencoder, self).__init__()
        self.encoder = nn.Sequential(
            nn.Linear(50 * 37, 512),
            nn.ReLU(True),
            nn.Linear(512, 128),
            nn.ReLU(True))
        self.decoder = nn.Sequential(
            nn.Linear(128, 512),
            nn.ReLU(True),
            nn.Linear(512, 50 * 37),
            nn.Sigmoid())  

    def forward(self, x):
        x = x.view(-1, 50 * 37)
        x = self.encoder(x)
        x = self.decoder(x)
        return x.view(-1, 1, 50, 37)

model = Autoencoder()

对于训练,我们将使用二元交叉熵损失来衡量原始图像和重建图像之间的差异,并使用 Adam 优化器进行权重更新。

👉参阅、更新:计算思维 | 亚图跨际

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

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

相关文章

idear 控制台乱码、查询结果、参数、控制台乱码

一、 -Dfile.encodingUTF-8 二、 三、 四、 五、

【区间选点】

题目 代码 左端点排序区间合并 #include <bits/stdc.h> using namespace std; #define null -0x3f3f3f3f #define x first #define y second typedef pair<int, int> PII; const int N 1e510; vector<PII> v; int main() {int n;cin >> n;for(int i…

LLM大模型企业应用实战-“消灭”LLM幻觉的利器

大模型一定程度改变了我们生活工作的思考方式&#xff0c;越来越多的个人和企业在思考如何将大模型应用到更加实际的生产生活。 1 LLM的问题 1.1 幻觉 LLM因为是一个预训练模型&#xff0c;它已有一些知识储备&#xff0c;我们提的问题跟他的知识储备不相符时&#xff0c;会…

当管理遇上AI,工作效率翻了3倍!

最近这段时间&#xff0c;很多企业都开始降薪、裁员。 在降本增效的大背景下&#xff0c;企业但凡有什么大动作&#xff0c;压力往往都会转嫁到管理者的身上。 一方面&#xff0c;要调大家的状态&#xff0c;处理团队中的各种琐事&#xff1b;另一方面&#xff0c;要及时响应…

C++ : STL容器之string剖析

STL容器之string剖析 一、string 的迭代器&#xff08;一&#xff09;起始迭代器&#xff08;二&#xff09;末尾迭代器&#xff08;三&#xff09;反向迭代器 二、容量相关的函数&#xff08;一&#xff09;size&#xff08;二&#xff09;capacity&#xff08;三&#xff09;…

Unity3d使用JsonUtility.FromJson读取json文件

使用JsonUtility.FromJson方法不需要额外引用第三方库。该方法只能读取json对象&#xff0c;而不能读取json数组。 假如我们有如下的json数组&#xff1a; [ {"id":1, "name":"first2021", "level":5, "score":100, "…

cefsharp129.0.110(CEF 129.0.11,Chromium 129.0.6668.90)版本体验

一、依赖包 1.1 CefSharp.WinForms CefSharp.WinForms .NET Framework:net462 net462 is compatible. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 1.2 CefSharp.…

JAVA思维提升

利用java做一个双色球彩票系统 要求 package ZY; import java.util.Random; import java.util.Scanner; public class Test9双色球 { //目标&#xff1a;模拟双色球//规则投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择;蓝色球号码从1-16中选择。publi…

springboot网站开发-解决web前端请求的一个错误

springboot网站开发-解决web前端请求的一个错误&#xff01;近期在开发网站时&#xff0c;web页面&#xff0c;点击金币结算按钮时&#xff0c;一直报错&#xff0c;说金币余额不足。经过使用浏览器自带的js调试插件&#xff0c;一步一步跟踪调试&#xff0c;发现了原因。是漏写…

程计软题3-编译程序基本原理

(一)词法分析的工具-正规式 题1-语句找表达式 1. 排除法 对于A&#xff1a;a*取0个a&#xff0c;&#xff08;a&#xff09;*取1个a,b*取b,A例可取ab,不满足题目 对于C:取ba*取b,a*取1个a&#xff0c;&#xff08;b&#xff09;*,取ab&#xff0c;不满足题目 对于D:&#xff…

360桌面助手意见反馈

360桌面助手收纳盒和映射文件夹互转需求 现有方式 收纳盒 桌面新建收纳盒后, 可以在收纳盒内, 增加文件 映射文件夹 首先磁盘新建文件夹, 然后复制文件夹路径, 然后桌面右键, 新建映射文件夹, 把路径放进去, 实现闭合 存在的问题 收纳盒问题 桌面收纳盒过多后, 直接解散…

ArcGIS实战——一文教会你调整适合中国宝宝体质的标准地图投影参数

各位要出图的小伙伴有没有遇到一个问题&#xff0c;当我们的研究区域是中国时&#xff0c;使用常见的WGS1984投影&#xff0c;会让我们的中国地图看起来不够挺拔&#xff0c;投影使得左右的拉伸比较长&#xff0c;进而让我们的中国地图变得不够美观。就像下面这样子&#xff0c…

stable diffusion各种插件及模型、教程

stable diffusion各种插件及模型、教程 下载地址&#xff1a;https://s.tb.cn/c.0Efdko

31 基于51单片机的水位监测系统仿真

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;DHT11温湿度检测&#xff0c;水位检测&#xff0c;通过LCD1602显示&#xff0c;超过阈值报警&#xff0c;继电器驱动电机转动。通过矩阵按键切换选择设置各项参数阈值。 …

手机地址IP显示不对?别急,这里有解决方案

在当今的数字化生活中&#xff0c;手机已成为我们连接世界的重要工具。而手机的IP地址&#xff0c;作为我们在网络上的“身份证”&#xff0c;其准确性对于网络体验至关重要。然而&#xff0c;有时我们可能会遇到手机IP地址显示不正确的问题&#xff0c;这不仅会影响网络连接质…

《数据结构》学习系列——树

系列文章目录 目录 树的基本概念树的定义树的特点树的相关术语度层数高度路径二叉树定义特点定理满二叉树定义特点完全二叉树定义特点二叉树的存储结构顺序存储结点结构优点缺点 链式存储 结点结构三叉链表表示法算法搜索结点的父结点搜索符合数据域条件的结点删除给定结点及其…

【Python】物流行业数据分析与可视化案例

一&#xff0c;前言 在本文中&#xff0c;我将使用python语言基于Jupyter notebook对这一份物流行业数据集进行多维度数据分析&#xff0c;文章内容参考自b站马士兵《数据分析五大经典实战项目》教学视频&#xff0c;并对其中一些操作做出优化。 数据集下载地址&#xff1a;物流…

数组与集合的应用-数组演练

1、获取一维数组最小值 1.1 实例说明 一维数组常用于保存线性数据&#xff0c;例如数据库中的单行数据就可以使用一维数组保存。本实例接收用户在文本框中输入的单行数据&#xff0c;其中数据都是整数数字&#xff0c;以不同数量的空格分割数字&#xff0c;如图1所示。这个先行…

【英语】5. 作文的高级表达

文章目录 前言一、作用二、主干内容三、使用步骤总结参考文献 前言 高中时总结的[1]&#xff0c;现在接着用 一、作用 在各种考试的作文中使用&#xff0c;减少过于直白、没有 “文采” 的表达 二、主干内容 file:///C/Users/[username]/Desktop/Engs.txt[2023/6/15 23:47:4…

一些关于PID双闭环控制的思考

最近搭建了一个LCL型滤波器的三相逆变器&#xff0c;使用了双闭环控制&#xff0c;但是查到了几种不同的控制策略&#xff0c;比如外环可以是输出电压&#xff0c;也可以是输出电流&#xff0c;内环可以是三相桥侧电感&#xff0c;也可以是电容电流&#xff0c;而不管哪种内外环…