C# 图像镜像

测试页面:

图像镜像是图像旋转变换的一种特殊情况,通常包括垂直方向和水平方向的镜像。水平镜像通常是以原图像的垂直中轴为中心,将图像分为左右两部分进行堆成变换。如下:

垂直镜像通常是以原图像的水平中轴线为中心,将图像划分为上下两部分进行堆成变换的过程。如下图:

数学表达式:

矩阵表现形式:

C# 代码实现(都是8位深度、单通道500w图像,后面介绍24、32位深度):

 结果如下:

 耗时32ms,我们来优化此代码,如下:

结果如下:

 耗时15ms,性能提升了不少,但是还没有到极致,我们使用simd指令集优化,如下:

 

结果如下:

耗时3ms,性能再次提升!!!

simd指令解释:垂直镜像直接交换两个向量的元素即可,但是水平镜像不行,在交换位置前需要对向量内部元素进行位置颠倒,Avx2.Shuffle对32位向量低位和高位分开进行颠倒,所以我们需要使用Avx2.Permute2x128指令颠倒低位和高位。

对于24,它是以B、G、R顺序排列,对于32位深度,它是以B、G、R、alpha排列,如下(这里使用普通代码):

 附OpenCV Sharp代码:

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

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

相关文章

【NLP自然语言处理】03 - 使用Anaconda创建新的环境/pycharm切换环境

NLP基础阶段:创建新的虚拟环境 第一步:查看有多少个虚拟环境 conda env list 第二步:创建一个新的虚拟环境,起个名字:nlpbase 打开anconda prompt终端,输入命令: conda create -n nlpbase python3.10 第三步…

React Agent 自定义实现

目录 背景 langchin 中的 agent langchin 中 agent 的问题 langchain 的 agent 案例 自定义 React Agent 大模型 工具定义 问题设定 问题改写,挖掘潜在意图 React Prompt 下一步规划 问题总结 代码 背景 之前使用过 langchian 中的 agent 去实现过一些…

高级算法设计与分析 学习笔记12 贪心算法

首先我们来解决一个经典的活动选择问题: s代表开始时间,f代表结束时间 可以看到这是一个动态规划的算法 现在,我们要把这个解决办法转换成一个贪心算法 直觉上讲,每次都选最先结束的可以留下最多的资源 当然开始之前先要把所有时…

[Python学习日记-43] Python 中的迭代器

[Python学习日记-43] Python 中的迭代器 简介 可迭代对象 迭代器 总结 简介 前面我们学习了各种各样的数据类型,在使用它们的时候我们也时不时会听到可迭代对象这一个名词,而本篇我们将讲述的迭代器感觉和我们之前学的可迭代对象挺相关的&#xff0c…

URDF统一机器人建模语言

统一机器人建模语言 URDF(Unified Robot Description Format)统一机器人描述格式,URDF使用XML格式描述机器人文件。 我们从下面四个方面介绍URDF: URDF的组成介绍 URDF-Link介绍 URDF-Joint介绍 创建一个简单的URDF…

五年以上倾斜摄影osgb模型转3dtiles如何在mars3d加载

方案一: // 兼容1.50 (2018-10-01)版本更改了名称,造成部分3dtiles可能会出现加载不上导致渲染停止的错误。 // 错误说明为:RuntimeError: Unsupported glTF Extension: KHR_technique_webgl // 原因:KHR_technique_w…

Java基础常见面试题总结(上)

基础概念与常识 Java 语言有哪些特点? 简单易学(语法简单,上手容易);面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性)&…

【9724】基于springboot+vue的篮球竞赛预约平台

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目描述 本次设计任务是要设计一个篮球竞赛预约平台&#xff0c…

软件架构师 PV

PV操作与生产者消费者问题是操作系统中进程管理和同步机制的重要概念。以下是对PV操作以及生产者消费者问题的详细解释: 一、PV操作 PV操作由P操作原语和V操作原语组成,这两个原语是不可中断的过程,它们对信号量进行操作。 P操作&#xff…

泰克MDO3054示波器特性和规格Tektronix MSO3054 500M 四通道

Tektronix MDO3054 示波器,混合域,500 MHz,4 通道,5 GS/s 泰克 MDO3054 混合域示波器是终极 6 合 1 集成示波器,包括可选的集成频谱分析仪、任意函数发生器、逻辑分析仪、协议分析仪和数字电压表/计数器。泰克 MDO305…

(25)QPSK信号在AWGN和Rayleigh衰落信道下的性能仿真

文章目录 前言一、MATLAB仿真代码二、仿真结果 前言 QPSK信号在AWGN和Rayleigh衰落信道下的性能仿真MATLAB代码。 一、MATLAB仿真代码 代码如下: nSamp 8; % 矩形脉冲的采样点数 nSymbol 1000000; % 传输的符号…

霍夫圆型硬币检测Matlab程序

1. 图像读取和预处理 使用MATLAB的uigetfile函数读取图像,可以从文件系统中选择图像文件。读取的图像随后经过灰度化处理,将彩色图像转换为灰度图像,以降低计算复杂度并去除不必要的颜色信息。 2. 中值滤波 在图像预处理过程中,…

uni-app 打包成app时 限制web-view大小

今天对接一个uni-app的app 内置对方h5 web-view的形式 需要对方在web-view顶部加点东西 对方打的app的web-view始终是全屏的状态,对方表示做不到我要的效果 emmmmmm。。。。。。 于是乎 自己搭了个demo 本地h5跑起来审查了下代码,发现web-view是给绝对定…

EasyOCR——超强超便捷的OCR开源算法介绍与文本检测模型CRAFT微调方法

背景 最近在实际操作阿拉伯文小语种OCR功能的时候,尝试了诸多开源算法,但效果均不尽如人意。 说实在的,针对阿拉伯文的OCR开源算法,若仅仅是效果没那么优秀,比如识别率能有个70%80%,我还能微调微调&#…

例行性工作(at,crontab)

(一)单一执行的例行性工作: ----at (1)原理:仅处理执行一次就结束了 (2)命令及其解释: (2.1)at命令格式:at [参数] [执行时间] &am…

C++ Builder XE12关于KonopkaControls与TMS VCL UI Pack组件的安装

1、先打开open project,选中安装的组件工程,并打开。 2、在option中设置 3、点击编译并进行安装install

【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发

一、简单场景介绍 假设你需要为一个商城项目接入一个基于SpringAI的智能客服系统,现在我们来基本模拟一下: 当我通过系统提问,大模型会针对我的问题进行回答。 当我们通过程序提问时,SpringAI会将我们的提问封装成Prompts&#x…

一分钟带你认清Java抽象类

abstrat——抽象,抽象类真的有像它的名字一样那么抽象吗?其实不然,它只是一个比较特殊的类别,我们只需要简单地认清它的作用就行,一起来看看吧~ 抽象类的概念 首先我们要明确一个事情:在面向对象的概念中&…

基于vue框架的宠物管理系统fyv66(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,宠物分类,宠物信息,宠物用品,用品分类,洗护类型,商家,宠物洗护 开题报告内容 基于Vue框架的宠物管理系统开题报告 一、背景与意义 随着城市化进程的加速和生活水平的提高,宠物已成为许多家庭的重要成员,宠…

RabbitMQ service is already present - only updating service parameters

Windows下卸载RabbitMQ之后,然后重新注册RabbitMQ服务的时候,报错以下信息: D:\software\rabbitmq-server-4.0.2\rabbitmq_server-4.0.2\sbin>D:\software\rabbitmq-server-4.0.2\rabbitmq_server-4.0.2\sbin\rabbitmq-service.bat install RabbitMQ service is already …