PIE SDK图像旋转

1.算法功能简介

图像旋转可使图像以中心点为轴沿特定方向旋转指定的角度。

PIESDK支持算法功能的执行,下面对图像旋转算法功能进行介绍。

2.算法功能实现说明

2.1 实现步骤


第一步


算法参数设置


第二步


算法执行


第三步


结果显示

2.2 算法参数


C#算法DLL


PIE.CommonAlgo.dll


C#算法名称


PIE.CommonAlgo.ImageRotationAlgo


参数结构体


ImageRotation_Exchange_Info


参数说明


InputFilePath


String


输入文件

(*.tif;*.tiff; *.img)


OutputFilePath


String


输出文件路径

(*.tif;*.tiff; *.img)


RotationType


Int


旋转类别(顺时针旋转:0;逆时针旋转:1)


RotationAngle


Int


旋转角度(0-360度)


FuncName


String


功能名称


FileTypeCode


String


根据输出类型获得文件编码类型

.tif/.tiff——GTiff

.img—————HFA

其他—————ENVI


LowBands


IList<Int>


输出旋转影像的波段(至少选择一个波段,{ 0, 1, 2, 3 })

2.3示例代码


项目路径


百度云盘地址下/PIE示例程序/ FundamentalToolDemo.ImageRotationDemo ()


数据路径


百度云盘地址下/ PIE示例数据/栅格数/World/world.tiff


视频路径


百度云盘地址下/PIE视频教程/图像旋转算法avi


示例代码


 1          /// <summary>
 2         ///图像旋转算法测试,本算法实现了将World.tif文件顺时针旋转90度生成World7.tif文件
 3         /// </summary>
 4         private void Test_KrigingInterpolationAlgo()
 5         {
 6             #region 1、参数设置
 7             PIE.CommonAlgo.ImageRotation_Exchange_Info info = new PIE.CommonAlgo.ImageRotation_Exchange_Info();
 8             info.InputFilePath = @"D:\Data\World.tif";
 9             info.OutputFilePath = @"D:\Data\World7.tif";
10             info.RotationType = 0;
11             info.RotationAngle = 90;
12             info.FileTypeCode = "GTiff";
13             info.LowBands = new List<int> { 0, 1, 2 };
14
15             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImageRotationAlgo");
16             if (algo == null) return;
17 #endregion
18
19             //2、算法执行
20             PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
21             algo.Name = "图像旋转";
22             algo.Params = info;            PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
23             //3、结果显示
24 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\World7.tif");
25             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);         m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
26                     }

2.4示例截图

原文地址:https://www.cnblogs.com/PIESat/p/10156962.html

时间: 2024-08-04 08:22:23

PIE SDK图像旋转的相关文章

PIE SDK Command&amp;&amp;Tool工具命令一览表

PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls.RasterCommand PIE.Controls.dll 2 加载矢量数据 PIE.Controls.VectorCommand 3 加载科学数据集数据 PIE.Controls.ScientificDatasetCommand 4 加载环境数据 PIE.Controls.LoadHJDataComma

PIE SDK彩色空间变换

1. 算法功能简介 使用彩色空间变换工具可以将三波段红.绿.蓝图像变换到一个特定的彩色空间,并且能从所选彩色空间变换回 RGB.两次变换之间,通过对比度拉伸,可以生成一个色彩增强的彩色合成图像.此外,颜色亮度值波段或亮度波段可以被另一个波段(通常具有较高的空间分辨率)代替,生成一幅合成图像(将一幅图像的色彩特征与另一幅图像的空间特征相结合). 彩色变换的一般工作流程:选择波段进行 RGB 合成显示→进行彩色变换→进行其他的图像处理→进行彩色逆变换→RGB 合成显示. PIE SDK支持算法功能的

PIE SDK傅里叶变换

1.算法功能简介 傅里叶变换能把遥感图像从空域变换到只包含不同频域信息的频域中.原图像上的灰度突变部位(如物体边缘).图像结构复杂的区域.图像细节及干扰噪声等,经傅里叶变换后,其信息大多集中在高频区:而原图像上灰度变化平缓的部位,如植被比较一致的平原.沙漠和海面等,经傅里叶变换后,大多集中在频率域中的低频区.在频率域平面中,低频区位于中心部位,而高频区位于低频区的外围,即边缘部位. 傅里叶变换是可逆的,即对图像进行傅里叶变换后得到的频率函数再做反向傅里叶变换,又可以得到原来的图像.从纯粹的数学意

PIE SDK同态滤波

1.算法功能简介 同态滤波是减少低频增加高频,从而减少光照变化并锐化边缘或细节的图像滤波方法. 同态滤波的流程为:空间域图像→对数运算→傅里叶正变换→同态滤波――傅里叶逆变换→指数运算→同态滤波结果.不同空间分辨率的遥感图像,使用同态滤波的效果不同.如果图像中的光照可以认为是均匀的,那么,进行同态滤波产生的效果不大.但是,如果光照明显是不均匀的,那么同态滤波有助于表现出图像中暗处的细节. PIE SDK支持算法功能的执行,下面对同态滤波算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤

PIE SDK微分锐化

1.算法功能简介 微分锐化通过微分使图像的边缘或轮廓突出.清晰.导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值较高,因此我们将图像的导数算子运算值作为相应的边界强度,所以可以通过对这些导数值设置阈值,提取边界的点集. PIE SDK支持算法功能的执行,下面对微分锐化算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤 第一步 算法参数设置 第二步 算法执行 第三步 结果显示 2.2. 算法参数 算法名称 微分锐化 C#算法DLL PIE.CommonAlg

每日算法之三十七:Rotate Image (图像旋转)

You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). Follow up: Could you do this in-place? 原地图像顺时针旋转90度.因为要求空间复杂度是常数,因此应该迭代旋转操作. class Solution { public: void rotate(vector<vector<int> > &mat

opencv-从图像旋转学习Mat数据访问

先看一个简单的例子 代码: // ConsoleApplication3_6_23.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<opencv2/opencv.hpp> #include<iostream> #include<vector> using namespace std; using namespace c

使用OpenCL+OpenCV实现图像旋转(一)

[题外话]近期申请了一个微信公众号:平凡程式人生.有兴趣的朋友可以关注,那里将会涉及更多更新OpenCL+OpenCV以及图像处理方面的文章. 最近在学习<OPENCL异构计算>,其中有一个实例是使用OpenCL实现图像旋转.这个实例中并没有涉及读取.保存.显示图像等操作,其中也存在一些小bug.在学习OpenCL之初,完整地实现这个实例还是很有意义的事情. 1.图像旋转原理 所谓图像旋转是指图像以某一点为中心旋转一定的角度,形成一幅新的图像的过程.这个点通常就是图像的中心. 由于是按照中心旋

图像旋转的原理

图像旋转是指图像以某一点为中心旋转一定的角度,形成一幅新的图像的过程.当然这个点通常就是图像的中心.既然是按照中心旋转,自然会有这样一个属性:旋转前和旋转后的点离中心的位置不变. 根据这个属性,我们可以得到旋转后的点的坐标与原坐标的对应关系.由于原图像的坐标是以左上角为原点的,所以我们先把坐标转换为以图像中心为原点.假设原图像的宽为w,高为h,(x0,y0)为原坐标内的一点,转换坐标后的点为(x1,y1).那么不难得到: x1 = x0 - w/2; y1 = -y0 + h/2; 在新的坐标系