c#中怎么得到tif图像的红外波段值

c#中怎么得到tif图像的红外波段值,第1张

Programcs文件如下:

using System;

using SystemCollectionsGeneric;

using SystemIO;

using iTextSharptext;

using iTextSharptextpdf;

using iTextSharptextpdfcodec;

namespace TIFtoPDF

{

class Program

{

//将多个tif文件合并成一个pdf文件

private static void tifToPdf(IEnumerable<string> arr, string sFilePdf)

{

FileInfo _toFile = new FileInfo(sFilePdf);

// 创建一个文档对象

Document doc = new Document(PageSizeA3, 0, 0, 0, 0);

int pages = 0;

FileStream fs=new FileStream(sFilePdf,FileModeOpenOrCreate);

// 定义输出位置并把文档对象装入输出对象中

PdfWriter writer = PdfWriterGetInstance(doc, fs);

// 打开文档对象

docOpen();

foreach(string sFileTif in arr)

{

PdfContentByte cb = writerDirectContent;

RandomAccessFileOrArray ra = new RandomAccessFileOrArray(sFileTif);

int comps = TiffImageGetNumberOfPages(ra);

for (int c = 0; c < comps; ++c)

{

Image img = TiffImageGetTiffImage(ra, c + 1);

if (img != null)

{

imgScalePercent(7200f / imgDpiX, 7200f / imgDpiY);

docSetPageSize(new Rectangle(imgScaledWidth, img

ScaledHeight));

imgSetAbsolutePosition(0,0);

cbAddImage(img);

docNewPage();

++pages;

}

}

raClose();// 关闭

}

// 关闭文档对象,释放资源

docClose();

}

public static void Main(string[] args)

{

tifToPdf(new string[]{@"C:\testtif"},@"C:\testpdf");

}

}

}

复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起运行/&cls

@echo off

rem 获取jpg、tif或mp4视频的基本属性信息

mode con lines=5000

set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4

title %#% +%$%%$%/%@% %z%

set ext=jpg tif mp4

set "outfile=\infocsv"

cd /d "%~dp0"

dir /a-d/b %ext% 2>nul|cscript -nologo -e:jscript "%~f0"

echo;%#% +%$%%$%/%@% %z%

pause

exit

/

var fso=new ActiveXObject('ScriptingFileSystemObject');

var sa=new ActiveXObject('ShellApplication');

while(!WSHStdInAtEndOfStream){

    var line=WSHStdInReadLine();

    var f=fsoGetFile(line);

    var filepath=fParentFolderPath;

    var filename=fName;

    var objFolder=saNameSpace(filepath);

    var objItem=objFolderParseName(filename);

    for(var i=0;i<=300;i++){

        var key=objFolderGetDetailsOf(null, i);

        var value=objFolderGetDetailsOf(objItem, i);

        if(value !='' && value != null){

            WSHecho(key+':'+value);

        }

    }

     WSHecho('----------------------------');

}

TrainDatabasePath = uigetdir('C:\Users\Administrator\Desktop', 'Select training database path') ;%选取图像所在文件夹

TrainFiles = dir(TrainDatabasePath);%

for i = 1:size(TrainFiles,1)

if not(strcmp(TrainFiles(i)name,'')|strcmp(TrainFiles(i)name,'')|strcmp(TrainFiles

(i)name,'Thumbsdb'))

str=TrainFiles(i)name;

str = strcat(TrainDatabasePath,'\',str);%读入ijpg

img = imread(str);

end

end%你跑跑看吧 循环提取了但是没储存 最后一幅会覆盖前面的 自己看着改吧

方法一:arcgis

获取栅格属性工具和栅格计算器一样,经常失灵(例如,尽管选了计算第二个波段的均值,但是结果还是第一个波段的均值),老是得到一些错误的结果,有可能是因为破解版的原因,我没用过正版的,所以没办法测试是不是破解版的才会出错。还有一个小tip,在使用这个工具之前,最好先用计算统计数据计算后再用获取栅格属性。

方法二

这个方法其实我也没用过,只是在csdn有看到。有一种是通过gdal遍历所有像元及其像素值,然后再计算平均值和方差,麻烦的我直接放弃。后来又看到了类似arcpyGetRasterProperties_management()函数,就是

dsoutGetRasterBand(i)ComputeStatistics()。

您好,TIF文件无法读取经纬度是因为TIF文件是一种图像文件格式,它不包含任何地理空间信息,也不能存储经纬度信息。要获取TIF文件的经纬度,您可以使用GIS软件,如ArcGIS或QGIS,将TIF文件转换为具有地理空间信息的格式,如Shapefile或GeoJSON,以获取经纬度信息。

以上就是关于c#中怎么得到tif图像的红外波段值全部的内容,包括:c#中怎么得到tif图像的红外波段值、有批量获取TIF,jpg,mp4,等文件的属性信息,保存到TXT或Excel里面的bat执行文件代码吗、我在D:\matlab\边界图像 文件夹中存放了 二十五张TIF的图片100.tif,101.tif……125tif。如何自动依次读取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9822909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存