当前位置:文档之家› 露点温度计算说明文档

露点温度计算说明文档

一、需要安装的软件:
运行工程需要安装opencv1.0软件,使用工程里面的模块则不需要。

opencv1.0软件和安装可以在中文网站下载:/。

下载具体网址:/download/OpenCV_1.0.exe。

在主页中,点击“OpenCV安装文档”下的“VC 2005 Express下安装与配置OpenCV1.0”,里面有具体的说明。

二、求露点温度方法
1. 根据室温T(摄氏),求该温度下的饱和蒸气压(Room_SWVP)
饱和蒸气压:在密闭条件中,在一定温度下,与液体或固体处于相平衡的蒸气所具有的压力称为饱和蒸气压。

同一物质在不同温度下有不同的蒸气压,并随着温度的升高而增大。

例如,在30℃时,水的饱和蒸气压为4245.5Pa。

其中,摄氏温度与绝对温度的转换公式:
273.15
绝对温度摄氏温度
=+。

在工程中实现该功能的函数是:
//输入摄氏温度输出该温度下的饱和蒸气压//
double SWVP_Wexler(double CelsiusTemp)
2.根据饱和蒸气压(Room_SWVP)和相对湿度Rh,求露点温度(DewPoint)
首先求露点温度下的饱和蒸气压(DewPoint_SWVP):
DewPoint_SWVP=Room_SWVP*Rh
然后使用SWVP_Wexler()函数找出一个温度TD使得下式成立: SWVP_Wexler(TD)< DewPoint_SWVP < SWVP_Wexler(TD+0.05)
此时,露点温度设定DewPoint为TD。

在工程中实现该功能的函数是:
//输入室内摄氏温度和相对湿度输出露点温度//
double CalcDewPoint(double RoomTemp,double RH)
三、露点温度工程的相关说明
1.输入:一幅320*240的红外图像(.ima格式),室温T(摄氏温度),相对湿度Rh。

输出:露点温度(摄氏温度)和二值化图像(低于露点温度为0,高于露点温度为255)。

2.整体流程
(1) 根据室温T和相对湿度Rh,求露点温度(DewPoint)
实现该功能的主函数:
//输入室内摄氏温度和相对湿度输出露点温度//
double CalcDewPoint(double RoomTemp,double RH)
还需要调用的函数:
//输入环境摄氏温度输出该温度下的饱和蒸气压//
double SWVP_Wexler(double CelsiusTemp)
(2) 根据输入的红外图像,求出每一点的温度值(摄氏)
实现该功能的函数:
//输入IR图像文件名,输出摄氏温度值图像//
void CalcTempFormFile(LPTSTR strFileName,
fMyTempAll &TempImage)
该函数是通过加载动态链接库KCIRDll.dll文件(用到头文件KCIRDll.h),该文件是keii公司计算红外图像温度封装的动态链接库,使用时请更新最新的动态链接库!
(3) 输入IR图像数据、室内温度和相对湿度,输出露点温度二值图(低于露点温度为0,高于露点温度为255)
实现该功能的函数:
//输入IR图像数据、室内摄氏温度和相对湿度输出露点温度二值图/ double GetDewPointImage(PUCHAR pIRdata,PUCHAR pDst,int
nWidth,int nHeight, double RoomTemp,double RH)
3.使用说明
//>>>>>> 读IMA格式文件<<<<</
LPTSTR IRFileName="keii3.Ima";
FILE* inf;
inf=fopen(IRFileName,"rb");
if(inf==NULL)return 0;
fseek(inf,32*1024,SEEK_SET);
//读图像数据
PUSHORT IRdata=new USHORT [IRSizes];
fread(IRdata,IRSizes,2,inf);
fclose(inf);
//>>>>>> 计算露点图像<<<<<//
//需要输入的参数
double RoomTemp=25; //室温摄氏温度
double RH=0.9; //相对湿度(0 - 1)
//计算IR的温度图
CalcTempFormFile(IRFileName,TempImage);
//标记露点温度图
PUCHAR BinDP=new UCHAR [IRSizes];
double DewPoint=GetDewPointImage((PUCHAR)IRdata,BinDP,
IRWidth,IRHeight,RoomTemp,RH);
//此时,BinDP为所求的二值化图像!!!
4.其余函数说明
//调试函数:获取IR图像的最大和最小AD值//
void GetMaxandMinAD(PUSHORT Src,int nWidth, int
nHeight,PUSHORT MaxAD,PUSHORT MinAD)
//调试函数:OpencV显示IR//
void ShowIRRGBImage(PUSHORT pRawData, int nWidth, int nHeight,char* nameW)
//调试函数:OpencV显示露点温度图像//
void ShowDewPointImage(PUCHAR pBinDP, int nWidth, int nHeight,char* nameW)
//输入IR的温度图输出最大和最小温度//
void GetMaxandMinTemp(fMyTempAll TempImage,MyPointTemp
&TheMaxTemp,MyPointTemp &TheMinTemp)
上述4个函数主要查看程序的调试效果,使用了opencv函数,在实际应用不需要!此外,工程的调试板UCHAR RGBTab[256][3] 实际应用时也不需要!
5.需要注意的问题
(1) 实际应用时,只需用到:
SWVP_Wexler()
CalcDewPoint()
CalcTempFormFile()
GetDewPointImage()
(2) 为了提高良好的视觉效果,请把二值化后的图像添加上伪彩色好!
(3) 把有关opencv的模块务必去掉:
函数:
ShowIRRGBImage()
ShowDewPointImage()
头文件:
#include"cv.h"
#include"highgui.h"
链接:
项目->属性->链接库->输入->附加依赖项“cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib” 去掉!
(4) 请更新计算红外图像温度封装的动态链接库KCIRDll.dll文件。

相关主题