Python和C++多尺度导图

🎯要点

  1. 热化学属性观测
  2. 蒙特卡罗似然比灵敏度分析时间尺度上动力学
  3. 化学催化反应动力学建模
  4. 自动微分电化学分析模型
  5. 反应动力学数学模型
  6. 渔业生态不确定性模型敏感性分析
  7. 空间统计地理模型分析技术
  8. 多维数据表征实现
  9. 生成艺术图案流苏
  10. 物体长度比,面积比和复杂度数据统计学分析
  11. 二维三维耦合偏微分方程有限元解析
  12. 交通标识识别
    在这里插入图片描述

Python(TensorFlow)结构相似性

结构相似性指数测量是一种预测数字电视和电影画面以及其他类型的数字图像和视频的感知质量的方法。它也用于测量两幅图像之间的相似性,此指数是一个完全参考指标,换句话说,图像质量的测量或预测是基于初始未压缩或无失真图像作为参考的。

结构相似性指数测量是一种基于感知的模型,它将图像质量下降视为结构信息的感知变化,同时还结合了重要的感知现象,包括亮度掩蔽和对比度掩蔽项。与其他技术(如 MSE 或 PSNR)的不同之处在于,这些方法估算绝对误差。结构信息是指像素具有很强的相互依赖性,尤其是当它们在空间上接近时。这些依赖关系包含有关视觉场景中物体结构的重要信息。亮度掩蔽是一种现象,即图像失真(在这种情况下)在明亮区域中往往不太明显,而对比度掩蔽是一种现象,即当图像中存在显着活动或“纹理”时,失真会变得不太明显。

算法

此指数是在图像的各个窗口上计算的。共同大小为 N × N N \times N N×N 的两个窗口 x x x y y y 之间的度量为:
结构相似性指数测量 ⁡ ( x , y ) = ( 2 μ x μ y + c 1 ) ( 2 σ x y + c 2 ) ( μ x 2 + μ y 2 + c 1 ) ( σ x 2 + σ y 2 + c 2 ) \operatorname{结构相似性指数测量}(x, y)=\frac{\left(2 \mu_x \mu_y+c_1\right)\left(2 \sigma_{x y}+c_2\right)}{\left(\mu_x^2+\mu_y^2+c_1\right)\left(\sigma_x^2+\sigma_y^2+c_2\right)} 结构相似性指数测量(x,y)=(μx2+μy2+c1)(σx2+σy2+c2)(2μxμy+c1)(2σxy+c2)

  • μ x \mu_x μx x x x 的像素样本平均值
  • μ y \mu_y μy y y y 的像素样本平均值
  • σ x 2 \sigma_x^2 σx2 x x x 的方差
  • σ y 2 \sigma_{y}^2 σy2 y y y的方差
  • σ x y \sigma_{x y} σxy x x x y y y 的协方差
  • c 1 = ( k 1 L ) 2 , c 2 = ( k 2 L ) 2 c_1=\left(k_1 L\right)^2, c_2=\left(k_2 L\right)^2 c1=(k1L)2,c2=(k2L)2两个变量来稳定弱分母除法
  • L L L 像素值的动态范围(通常为 2 # Wits per Pixel  − 1 2^{\# \text { Wits per Pixel }}-1 2# Wits per Pixel 1
  • 默认情况下 k 1 = 0.01 k_1=0.01 k1=0.01 k 2 = 0.03 k_2=0.03 k2=0.03

公式基于 x x x y y y 样本之间的三个比较测量值:亮度 ( l ) (l) (l)、对比度 ( c ) (c) (c) 和结构 (s)。各个比较函数是:
l ( x , y ) = 2 μ x μ y + c 1 μ x 2 + μ y 2 + c 1 c ( x , y ) = 2 σ x σ y + c 2 σ x 2 + σ y 2 + c 2 s ( x , y ) = σ x y + c 3 σ x σ y + c 3 \begin{aligned} & l(x, y)=\frac{2 \mu_x \mu_y+c_1}{\mu_x^2+\mu_y^2+c_1} \\ & c(x, y)=\frac{2 \sigma_x \sigma_y+c_2}{\sigma_x^2+\sigma_y^2+c_2} \\ & s(x, y)=\frac{\sigma_{x y}+c_3}{\sigma_x \sigma_y+c_3} \end{aligned} l(x,y)=μx2+μy2+c12μxμy+c1c(x,y)=σx2+σy2+c22σxσy+c2s(x,y)=σxσy+c3σxy+c3

结构相似性指数测量的更高级形式称为多尺度结构相似性指数测量,它通过多阶段子采样过程在多个尺度上进行,让人想起早期视觉系统中的多尺度处理。事实证明,它在不同的主观图像和视频数据库上的表现与结构相似性指数测量相当或更好。

Python(TensorFlow)多尺度结构相似性指数测量

import numpy as np
from scipy import signal
from scipy.ndimage.filters import convolve
import tensorflow as tftf.flags.DEFINE_string('original_image', None, 'Path to PNG image.')
tf.flags.DEFINE_string('compared_image', None, 'Path to PNG image.')
FLAGS = tf.flags.FLAGSdef _FSpecialGauss(size, sigma):radius = size // 2offset = 0.0start, stop = -radius, radius + 1if size % 2 == 0:offset = 0.5stop -= 1x, y = np.mgrid[offset + start:stop, offset + start:stop]assert len(x) == sizeg = np.exp(-((x**2 + y**2)/(2.0 * sigma**2)))return g / g.sum()def _SSIMForMultiScale(img1, img2, max_val=255, filter_size=11,filter_sigma=1.5, k1=0.01, k2=0.03):if img1.shape != img2.shape:raise RuntimeError('Input images must have the same shape (%s vs. %s).',img1.shape, img2.shape)if img1.ndim != 4:raise RuntimeError('Input images must have four dimensions, not %d',img1.ndim)img1 = img1.astype(np.float64)img2 = img2.astype(np.float64)_, height, width, _ = img1.shapesize = min(filter_size, height, width)sigma = size * filter_sigma / filter_size if filter_size else 0if filter_size:window = np.reshape(_FSpecialGauss(size, sigma), (1, size, size, 1))mu1 = signal.fftconvolve(img1, window, mode='valid')mu2 = signal.fftconvolve(img2, window, mode='valid')sigma11 = signal.fftconvolve(img1 * img1, window, mode='valid')sigma22 = signal.fftconvolve(img2 * img2, window, mode='valid')sigma12 = signal.fftconvolve(img1 * img2, window, mode='valid')else:mu1, mu2 = img1, img2sigma11 = img1 * img1sigma22 = img2 * img2sigma12 = img1 * img2mu11 = mu1 * mu1mu22 = mu2 * mu2mu12 = mu1 * mu2sigma11 -= mu11sigma22 -= mu22sigma12 -= mu12c1 = (k1 * max_val) ** 2c2 = (k2 * max_val) ** 2v1 = 2.0 * sigma12 + c2v2 = sigma11 + sigma22 + c2ssim = np.mean((((2.0 * mu12 + c1) * v1) / ((mu11 + mu22 + c1) * v2)))cs = np.mean(v1 / v2)return ssim, csdef MultiScaleSSIM(img1, img2, max_val=255, filter_size=11, filter_sigma=1.5,k1=0.01, k2=0.03, weights=None):if img1.shape != img2.shape:raise RuntimeError('Input images must have the same shape (%s vs. %s).',img1.shape, img2.shape)if img1.ndim != 4:raise RuntimeError('Input images must have four dimensions, not %d',img1.ndim)# Note: default weights don't sum to 1.0 but do match the paper / matlab code.weights = np.array(weights if weights else[0.0448, 0.2856, 0.3001, 0.2363, 0.1333])levels = weights.sizedownsample_filter = np.ones((1, 2, 2, 1)) / 4.0im1, im2 = [x.astype(np.float64) for x in [img1, img2]]mssim = np.array([])mcs = np.array([])for _ in range(levels):ssim, cs = _SSIMForMultiScale(im1, im2, max_val=max_val, filter_size=filter_size,filter_sigma=filter_sigma, k1=k1, k2=k2)mssim = np.append(mssim, ssim)mcs = np.append(mcs, cs)filtered = [convolve(im, downsample_filter, mode='reflect')for im in [im1, im2]]im1, im2 = [x[:, ::2, ::2, :] for x in filtered]return (np.prod(mcs[0:levels-1] ** weights[0:levels-1]) *(mssim[levels-1] ** weights[levels-1]))def main(_):if FLAGS.original_image is None or FLAGS.compared_image is None:print('\nUsage: python msssim.py --original_image=original.png ''--compared_image=distorted.png\n\n')returnif not tf.gfile.Exists(FLAGS.original_image):print('\nCannot find --original_image.\n')returnif not tf.gfile.Exists(FLAGS.compared_image):print('\nCannot find --compared_image.\n')returnwith tf.gfile.FastGFile(FLAGS.original_image) as image_file:img1_str = image_file.read()with tf.gfile.FastGFile(FLAGS.compared_image) as image_file:img2_str = image_file.read()input_img = tf.placeholder(tf.string)decoded_image = tf.expand_dims(tf.image.decode_png(input_img, channels=3), 0)with tf.Session() as sess:img1 = sess.run(decoded_image, feed_dict={input_img: img1_str})img2 = sess.run(decoded_image, feed_dict={input_img: img2_str})print((MultiScaleSSIM(img1, img2, max_val=255)))if __name__ == '__main__':tf.app.run()

执行:

python msssim.py --original_image=original.png --compared_image=distorted.png

👉更新:亚图跨际

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

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

相关文章

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的…

Django+Vue3前后端分离学习(二)(重写User类)

一、重写User类: 1、首先导入User类: from django.contrib.auth.models import User 2、然后点在User上,按住ctrl 点进去,发现 User类继承AbstractUser Ctrl点进去AbstractUser,然后将此方法全部复制到自己APP的mo…

3 html5之css新选择器和属性

要说css的变化那是发展比较快的,新增的选择器也很多,而且还有很多都是比较实用的。这里举出一些案例,看看你平时都是否用过。 1 新增的一些写法: 1.1 导入css 这个是非常好的一个变化。这样可以让我们将css拆分成公共部分或者多…

WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率

介绍 随着互联网数据的爆炸式增长,爬虫技术成为了获取信息的重要工具。在实际应用中,如何提升浏览器自动化的效率是开发者常常面临的挑战。Chrome DevTools Protocol(CDP)与Selenium WebDriver相结合,为浏览器自动化提…

还不会剪音乐?试试这四款在线音频剪辑

音频剪辑很多人都没有接触过。其实这并不是一个难事,我们甚至可以用一些简单的工具来给自己做个简单的BGM,最近我尝试了几款不同的音频剪辑工具。今天就来跟大家分享一下我的使用体验,看看哪款工具更适合你的需求。 一、福昕音频剪辑 网址&…

Oracle rman 没有0级时1级备份和0级大小一样,可以用来做恢复 resetlogs后也可以

文档说了 full backup 不能 用于后续的level 1,没说level 1没有level 0 是不是level 1就是level 0? GOAL What are incremental backups? Why are archivelogs still required to recover a database from an online incremental backup? Discuss th…

python学习13:对excel格式文件进行读写操作

读取excel的话需要下载第三方库: 常用的库:xlrd(读),xlwt(写),xlutils,openpyxl[-----pip install xxx-------] 这里推荐openpyxl pip install openpyxl excel读取的基本操作 # 2)基本操作: # 2.1)打开文件,获取工作簿 filename rD:\stdutyZiLiao\pythoneProje…

动态化-鸿蒙跨端方案介绍

一、背景 👉 华为在2023.9.25官方发布会上宣布,新的鸿蒙系统将不再兼容安卓应用,这意味着,包括京东金融APP在内的所有安卓应用,在新的鸿蒙系统上将无法运行,需要重新开发专门适用于新鸿蒙系统的专版APP。 …

日语输入法平假名和片假名切换

在学日语输入法的时候,我们在使用罗马音输入的时候,在进行平假名和片假名切换: 1、使用电脑在打字,日语输入法切换的时候使用 Shift Alt 如果日语输入法显示为 A 需要切换为 あ的话可以按Caps Lock键 。(相当于中文…

zblog自动生成文章插件(百度AI写作配图,图文并茂)

最近工作比较忙,导致自己的几个网站都无法手动更新,于是乎也想偷个懒把,让AI帮忙打理下自己的网站。我接触chatgpt等AI工具还是比较早了,从openai推出gpt3.5就一直在用,说实话,开始的时候用AI自动更新网站还…

「C++系列」日期/时间

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能教程 文章目录 一、日期/时间1. C标准库&#xff08;C20之前&#xff09;<ctime>库中的关键组件&#xff1a; 2…

lnmp - tp6.0的安装和简单使用

概述 使用了很长时间的Mac M2芯片的电脑在之前使用虚拟机之前总有一些bug不是那么好用&#xff0c;周末之余重新安装了一下centos虚拟机&#xff0c;搭建了lnmp环境&#xff0c;打算自己挤时间&#xff0c;做一点应用&#xff0c;作为一次新的小小的尝试。 安装&更新 ce…

OCC开发_变高箱梁全桥建模

概述 上一篇文章《OCC开发_箱梁梁体建模》中详细介绍了箱梁梁体建模的过程。但是&#xff0c;对于实际桥梁&#xff0c;截面可能存在高度、腹板厚度、顶底板厚度变化&#xff0c;全桥的结构中心线存在平曲线和竖曲线。针对实际情况&#xff0c;通过一个截面拉伸来实现全桥建模显…

算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)

目录 一、数据结构前言 1、数据结构 2、算法 3、学习方法 二、 算法效率 引入概念&#xff1a;算法复杂度 三、时间复杂度 1、大O的渐进表示法 2、时间复杂度计算示例 四、空间复杂度 计算示例&#xff1a;空间复杂度 五、常见复杂度对比 六、复杂度算法题&…

《JavaEE进阶》----12.<SpringIOCDI【扫描路径+DI详解+经典面试题+总结】>

本篇博客主要讲解 扫描路径 DI详解&#xff1a;三种注入方式及优缺点 经典面试题 总结 五、环境扫描路径 虽然我们没有告诉Spring扫描路径是什么&#xff0c;但是有一些注解已经告诉Spring扫描路径是什么了 如启动类注解SpringBootApplication。 里面有一个注解是componentS…

【学习笔记】3GPP WG SA5 Rel-19标准化工作管理和编排

3GPP WG SA5 Rel-19标准化工作涵盖了管理和编排要求、管理阶段2和管理流程&#xff0c;以及阶段3 OpenAPI和YANG解决方案集&#xff0c;以在多供应商环境中为5G网络提供完整的管理互操作性能力。 SA5以WG SA1通过紧密跟踪其他3GPP工作组的进展&#xff0c;这些工作组产生新的网…

如何使div居中?CSS居中终极指南

前言 长期以来&#xff0c;如何在父元素中居中对齐一个元素&#xff0c;一直是一个让人头疼的问题&#xff0c;随着 CSS 的发展&#xff0c;越来越多的工具可以用来解决这个难题&#xff0c;五花八门的招式一大堆&#xff0c;这篇博客&#xff0c;旨在帮助你理解不同的居中方法…

【机器人工具箱Robotics Toolbox开发笔记(二)】Matlab中机器人工具箱的下载与安装

Matlab机器人工具箱(Robotics Toolbox)可从Peter Corke教授提供的网站上免费下载。网址为:http://www.petercorke.com/Robotics_Toolbox.html。 图1 网站所提供的机器人工具箱版本 在Downloading the Toolbox栏目中单击here按钮进入下载页面,然后在该页面中填写国家、组织…

Qt多语种开发教程

Qt作为跨平台的开发工具&#xff0c;早已应用到各行各业的软件开发中。 今天讲讲&#xff0c;Qt开发的正序怎么做多语言开发。就是说&#xff0c;你设置中文&#xff0c;就中文显示&#xff1b;设置英语就英文显示&#xff0c;设置繁体就繁体显示&#xff0c;设置发育就显示法语…

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务&#xff0c;使用API接口查询京东物流的便捷步骤&#xff0c;首先选择专业的数据平台的快递API接口&#xff1a;物流快递查询API接口-单号查询…