??xml version="1.0" encoding="utf-8" standalone="yes"?> 本节介绍三种UdPTZ单元操作Q绝寏V相ҎUd。所有操作都需要profile tokenQ引用PTZ配置中的Media Profile?br /> 所有移动命令应以非d方式执行Q表CZ应等到请求的Ud操作完成。新的移动请求可以覆盖最后的Ud操作?/p> ׃本规范涉及的物理讑֤范围q泛Q因此本规范不要求对PTZUd操作的特定相应时间。但是设备应量减少PTZUd命o响应的gq。设备没有完全控制PTZ控制输入和设备移动的滞后。网l与客户端的延迟会增加滞后。实现应该尽快减设备的延迟?/p> 5.3.1. l对UdQAbsoluteMoveQ?br /> 如果PTZ节点支持l对水^/俯Ԓ或绝对变焦的UdQ则应支持绝对移动操作。这个命令的位置参数指定PTZ单元要移动的l对位置。它分ؓ一个可选的水^/俯Ԓ元素和一个可选的变焦元素。如果忽略了水^/俯Ԓ位置Q则当前的水q?俯Ԓq动不受此命令的影响。变焦也是同L原理?/p> PTZ节点支持的绝对位|空_如果省略了空间信息,则PTZ配置的相应的默认I间Q采用指定控件的媒体属性。设备仅为有l对位置I间提供支持l对水^/俯Ԓ或变焦的服务。现有的Ud操作命o中的速度参数比PTZ配置中的默认速度优先U要高。如果空间引用了速度参数Q那么需要支持PTZ节点支持的速度I间?/p> 如果无法辑ֈ所要求的绝对位|,操作失败?/p> hQREQUESTQ? 如果PTZ节点支持相对水^/俯Ԓ或相对变焦移动,则需要支持相对移动(RelativeMoveQ操作。此操作的{换参数指定当前位|与要移动的位置的插倹{该操作可分Z个可选的水^/俯Ԓ元素和一个可选的变焦参数。如果水q?俯Ԓ忽略掉了Q那么当前的水^/俯Ԓ位置不会受此命o的媄响。变焦元素也同样?br /> 转换元素中引用的I间应该为PTZ节点支持的{换空间。如果{换参数的I间信息忽略掉了Q那么将ҎPTZ配置的默认空间。设备需要支持相Ҏq?俯ԒUdQ相对变焦移动或不支持相对运动?br /> 在请求移动的命o中携带的速度参数优先于PTZ配置中的默认速度。如果空间引用了速度参数Q则PTZ节点需要支持速度I间?br /> 通过发送水q?俯Ԓ和变?值命令可以在当前位置停止PTZ单元。停止应h与引用相对空间完全相同的效果?br /> 如果h转换后的l对位置是无法到辄Q那么PTZ节点需要移动最接近的有效位|?br />hQREQUESTQ? hPTZ功能的设备应支持q箋Ud。此命o的速度参数为水q?俯Ԓ和羃放指定的有符L速度倹{组合的水^/俯Ԓ元素及变焦元素也是可选的。如果水q?俯Ԓ元素忽略掉了Q当前的水^/俯Ԓ元素则不受此命o的媄响。变焦元素也是如此。引用有速度元素的空间的PTZ节点需要支持速度I间。如果速度参数忽略掉了I间信息Q那么采用相应的指定媒体文g的PTZ配置的默认空间。设备通过仅ؓ支持的情冉|供速度I间来支持连l水q?俯ԒUd和连l变焦动作?br /> 当前Ud操作的超时参C先于相应PTZ配置的默认超时参数。超时参数决定PTZ节点的连l移动的旉?br /> ?作ؓ该u的连l移动参数时Q设备应停止在特定uQ水qI俯Ԓ或变焦)的移动。引用的速度I间也应有独立的停止功能。这个命令在q箋Ud的媄响与?.3.5节中的停止命令是一L?br /> h的速度得到的绝对位|是不能到达的,则PTZ节点应移动到最接近的能到达的位|。连l移动操作的典型应用是通过操纵杆控制PTZ?br />hQREQUESTQ? 讑֤有GeoMove信号Q则PTZ节点需要支持这cd令?br /> 可选的AreaHeight和AreaWidth参数可以d到参CQ所以PTZ讑֤可以军_变焦因子。如果没有提供AreaHeight和AreaWidthQ该单元不会更改变焦。AreaHeight和AreaWidth用米来表C?br /> h的{换过E中的速度参数优先于相应的PTZ配置的默认速度。如果引用的I间含有速度参数Q那么PTZ节点应支持速度I间?br /> 如果PTZ讑֤不支持自动检索地理位|,那么在执行地理引用命令之前用SetGeoLocationq行讄。客L如果在设备设|地理位|之前发送GeoMove命oQ设备应q回一个错误?br /> 取决于PTZ讑֤的运动方式,h的位|可能无法到达。这U情况下讑֤应返回一个错误,表示׃物理限制无法执行h的操作?br />hQREQUESTQ? 响应QRESPONSEQ?/strong>: I消?br />错误QFAULTSQ?/strong>Q?br />• env:Sender - ter:InvalidArgVal - ter:NoProfile PTZ讑֤需支持停止操作。如果没有指定停止的参数Q那么这个命令将停止所有正在进行的水^Q俯仰和变焦动作。通过指定相应的停止参数可以停止对应的操作?br />hQREQUESTQ? 讑֤PTZ节点有MoveAndTrack时应该支持这个命令。这个操作的目的是向讑֤发送一个自动命令:Ud摄像机到惌的位|然后通过q踪法代理PTZ操作。用原子命令,延迟被最化。移动位|是可选的且可以按照三U模式进行设|: PTZ讑֤需支持通过GetStatus命o报告PTZ状态。PTZ状态包含以下信息:
• ProfileToken [tt:ReferenceToken]
对现有媒体配|文件的引用
• Position [tt:PTZVector]
指定l对目标位置的矢?br />• Speed – 可选[tt:PTZSpeed]
可选速度矢量
响应QRESPONSEQ?/strong>: I消?br />错误QFAULTSQ?/strong>Q?br />• env:Sender - ter:InvalidArgVal - ter:NoProfile
h的配|文件token内ProfileToken不存在?br />• env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
h的配|文件token未引用PTZ配置?br />• env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
引用了PTZ节点不支持的I间?br />• env:Sender - ter:InvalidArgVal - ter:InvalidPosition
h的位|超Z界限?br />• env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
h的速度出了界限?br />讉K权限c(ACCESS CLASSQ?/strong>Q?br />ACTUATE5.3.2. 相对UdQRelativeMoveQ?br />
• ProfileToken [tt:ReferenceToken]
对现有媒体配|文件的引用
• Translation [tt:PTZVector]
指定相对于当前位|的位置q移的向?br />• Speed – 可选[tt:PTZSpeed]
可选速度矢量
响应QRESPONSEQ?/strong>: I消?br />错误QFAULTSQ?/strong>Q?br />• env:Sender - ter:InvalidArgVal - ter:NoProfile
h的配|文件token内ProfileToken不存在?br />• env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
h的配|文件token未引用PTZ配置?br />• env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
引用了PTZ节点不支持的I间?br />• env:Sender - ter:InvalidArgVal - ter:InvalidTranslation
h的{换超Z界限?br />• env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
h的速度出了界限?br />讉K权限c(ACCESS CLASSQ?/strong>Q?br />ACTUATE5.3.3. q箋UdQContinuousMoveQ?br />
• ProfileToken [tt:ReferenceToken]
对现有媒体配|文件的引用
• Velocity [tt:PTZSpeed]
速度矢量指定水^Q俯仰和变焦的速度?br />• Timeout– 可选[tt:duration]
可选超?br />响应QRESPONSEQ?/strong>: I消?br />错误QFAULTSQ?/strong>Q?br />• env:Sender - ter:InvalidArgVal - ter:NoProfile
h的配|文件token内ProfileToken不存在?br />• env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
h的配|文件token未引用PTZ配置?br />• env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
引用了PTZ节点不支持的I间?br />• env:Sender - ter:InvalidArgVal - ter:InvalidTranslation
h的{换超Z界限?br />• env:Sender - ter:InvalidArgVal - ter:TimeoutNotSupported
指定的超时参C在支持的时旉范围内?br />• env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
h的速度出了界限?br />讉K权限c(ACCESS CLASSQ?/strong>Q?br />ACTUATE5.3.4. 地理UdQGeoMoveQ?br />
• ProfileToken [tt:ReferenceToken]
对现有媒体配|文件的引用
• Target [tt:GeoLocation]
目标坐标?br />• Speed – 可选[tt:PTZSpeed]
指定水^Q俯仰和变焦的速度矢量?br />• AreaWidth – 可选[xs:float]
要显C的可选区域?br />• AreaHeight – 可选[xs:float]
要显C的可选区域?br />
h的配|文件token内ProfileToken不存在?br />• env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
h的配|文件token未引用PTZ配置?br />• env:Sender - ter:InvalidArgVal - ter:GeoMoveNotSupported
讑֤不支持地理移动?br />• env:Sender - ter:InvalidArgVal - ter:UnreachablePosition
h的{换超Z界限?br />• env:Sender - ter:InvalidArgVal - ter:TimeoutNotSupported
指定的超时参C在支持的时旉范围内?br />• env:Sender - ter:InvalidArgVal - ter:GeoLocationUnknown
׃地理位置未配|或不可用,该单元无法执行GeoMove?br />讉K权限c(ACCESS CLASSQ?/strong>Q?br />ACTUATE5.3.5. 停止QStopQ?br />
• ProfileToken [tt:ReferenceToken]
对现有媒体配|文件的引用
• PanTilt – 可选[xs:boolean]
停止水^和俯仰操作(默认为trueQ?br />• Zoom – 可选[xs:boolean]
停止变焦操作Q默认ؓtrueQ?br />响应QRESPONSEQ? I消?br />错误QFAULTSQ?/strong>Q?br />• env:Sender - ter:InvalidArgVal - ter:NoProfile
h的配|文件token内ProfileToken不存在?br />• env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
h的配|文件token未引用PTZ配置?br />讉K权限c(ACCESS CLASSQ?/strong>Q?br />ACTUATE5.3.6. Udq开始跟t(MoveAndStartTrackingQ?br />
• 通过地理位置坐标
• 通过预置位token
• 通过PTZVector位置
h位置Ud的的速度参数优先于相应的PTZ配置的默认速度。如果引用空间含有速度参数Q那么PTZ节点需支持速度I间?br /> 如果在同一个设备中完成了侦察和q踪Q那么ObjectID引用可以作ؓ参数Q以指定应跟t哪个对象?br /> h的绝对位|设备无法到达,则操作将p|?br />hQREQUESTQ?
• ProfileToken [tt:ReferenceToken]
对现有媒体配|文件的引用
• GeoLocation – 可?[tt:GeoLocation]
可选目标坐标?br />• PresetToken – 可选[tt:ReferenceToken]
对一个存在的预置位token的可选应用?br />• TargetPosition – 可选[tt:PTZVector]
指定l对目标位置的可选向量?br />• Speed – 可选[tt:PTZSpeed]
可选速度矢量?br />• ObjectID – 可选[tt:ObjectID]
要跟t对象的可选Object ID?br />响应QRESPONSEQ?/strong>: I消?br />错误QFAULTSQ?/strong>Q?br />• env:Sender - ter:InvalidArgVal - ter:NoProfile
h的配|文件token内ProfileToken不存在?br />• env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
h的配|文件token未引用PTZ配置?br />• env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
引用了PTZ节点不支持的I间?br />• env:Sender - ter:InvalidArgVal - ter:InvalidPosition
h的位|超Z界限?br />• env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
h的速度出了界限?br />• env:Sender - ter:InvalidArgVal - ter:GeoMoveNotSupported
讑֤不支持地理移动?br />• env:Sender - ter:InvalidArgVal - ter:UnreachablePosition
h的{换超Z界限?br />• env:Sender - ter:InvalidArgVal - ter:GeoLocationUnknown
׃地理位置未配|或不可用,该单元无法执行GeoMove?br />• env:Sender - ter:InvalidArgVal - ter:NoToken
h的预|位token不存在?br />讉K权限c(ACCESS CLASSQ?/strong>Q?br />ACTUATE5.3.7. 状态获取(GetStatusQ?br />
• 位置Position (可? – 引用I间指定云台单元的绝对位|。相应PTZ配置的默认绝对空间应在位|元素中引用。如果设备有StatusPosition能力Q则需要显C此信息?br />• Ud状态MoveStatus(可? – 表示水^/俯Ԓ/变焦讑֤单元当前是否正在Ud、空闲或处于位置状态。如果设备有MoveStatus能力Q则需要显C此信息。未知状态不应在正常错误中用,但是在初始化或错误状况下使用?br />• 错误Error (可? – 表示当前PTZ错误状态。MoveStatus未知状态时Q显C个字Dc?br />• 国际标准旉 UTC Time – 指定生成状态时的UTC旉?br />hQREQUESTQ?/strong>:
• ProfileToken [tt:ReferenceToken]
对现有媒体配|文件的引用
响应QRESPONSEQ?/strong>: I消?br />• PTZStatus[tt:PTZStatus]
h媒体文g的PTZStatus?br />错误QFAULTSQ?/strong>Q?br />• env:Sender - ter:InvalidArgVal - ter:NoProfile
h的配|文件token内ProfileToken不存在?br />• env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
h的配|文件token未引用PTZ配置?br />• env:Receiver – ter:Action - ter:NoStatus
h的媒体配|文件中没有可用的PTZ状态?br />讉K权限c(ACCESS CLASSQ?/strong>Q?br /> READ_MEDIA
]]>
]]>
]]>
埃及艛_Q伊丽莎白,你们的名气虽大,但终归已是尘土?br/>
横看世界Q地球你在太阳系中算的Q?br/>
太阳pM在银河系中又是怎样的地位?
银河pdQ你在宇宙中又占哪个位置Q?br/>
人啊Q你在地球上可以是一个管理者?br/>
你今日ؓ房子劳碌而委屈了自己Q你自己有想q吗Q?br/>
你昨日因Z件小事而闷L气,又何必呢Q?br/>
我不知是明天太阳先升Pq是意外先来临?br/>
曄你相信生zM止眼前的苟且Q现在还怿q有诗和q方的田野吗Q?br/>
你是否将自己局限在自己惌的框架中了呢Q?br/>
]]>
//c++:Byte(unsigned char) ---- c#:System.Byte
//c++:SHORT(short) ---- c#:System.Int16
//c++:WORD(unsigned short) ---- c#:System.UInt16
//c++:INT(int) ---- c#:System.Int16
//c++:INT(int) ---- c#:System.Int32
//c++:UINT(unsigned int) ---- c#:System.UInt16
//c++:UINT(unsigned int) ---- c#:System.UInt32
//c++:LONG(long) ---- c#:System.Int32
//c++:ULONG(unsigned long) ---- c#:System.UInt32
//c++:DWORD(unsigned long) ---- c#:System.UInt32
//c++:DECIMAL ---- c#:System.Decimal
//c++:BOOL(long) ---- c#:System.Boolean
//c++:CHAR(char) ---- c#:System.Char
//c++:LPSTR(char *) ---- c#:System.String
//c++:LPWSTR(wchar_t *) ---- c#:System.String
//c++:LPCSTR(const char *) ---- c#:System.String
//c++:LPCWSTR(const wchar_t *) ---- c#:System.String
//c++:PCAHR(char *) ---- c#:System.String
//c++:BSTR ---- c#:System.String
//c++:FLOAT(float) ---- c#:System.Single
//c++:DOUBLE(double) ---- c#:System.Double
//c++:VARIANT ---- c#:System.Object
//c++:PBYTE(byte *) ---- c#:System.Byte[]
//c++:BSTR ---- c#:StringBuilder
//c++:LPCTSTR ---- c#:StringBuilder
//c++:LPCTSTR ---- c#:string
//c++:LPTSTR ---- c#:[MarshalAs(UnmanagedType.LPTStr)] string
//c++:LPTSTR 输出变量?nbsp; ---- c#:StringBuilder 输出变量?nbsp;
//c++:LPCWSTR ---- c#:IntPtr
//c++:BOOL ---- c#:bool
//c++:HMODULE ---- c#:IntPtr
//c++:HINSTANCE ---- c#:IntPtr
//c++:l构?nbsp; ---- c#:public struct l构体{};
//c++:l构?**变量?nbsp; ---- c#:out 变量?nbsp;
//C#中提前申明一个结构体实例化后的变量名
//c++:l构?&变量?nbsp; ---- c#:ref l构体变量名
//c++:WORD ---- c#:ushort
//c++:DWORD ---- c#:uint
//c++:DWORD ---- c#:int
//c++:UCHAR ---- c#:int
//c++:UCHAR ---- c#:byte
//c++:UCHAR* ---- c#:string
//c++:UCHAR* ---- c#:IntPtr
//c++:GUID ---- c#:Guid
//c++:Handle ---- c#:IntPtr
//c++:HWND ---- c#:IntPtr
//c++:DWORD ---- c#:int
//c++:COLORREF ---- c#:uint
//c++:unsigned char ---- c#:byte
//c++:unsigned char * ---- c#:ref byte
//c++:unsigned char * ---- c#:[MarshalAs(UnmanagedType.LPArray)] byte[]
//c++:unsigned char * ---- c#:[MarshalAs(UnmanagedType.LPArray)] Intptr
//c++:unsigned char & ---- c#:ref byte
//c++:unsigned char 变量?nbsp; ---- c#:byte 变量?nbsp;
//c++:unsigned short 变量?nbsp; ---- c#:ushort 变量?nbsp;
//c++:unsigned int 变量?nbsp; ---- c#:uint 变量?nbsp;
//c++:unsigned long 变量?nbsp; ---- c#:ulong 变量?nbsp;
//c++:char 变量?nbsp; ---- c#:byte 变量?nbsp;
//C++中一个字W用一个字节表C?C#中一个字W用两个字节表示
//c++:char 数组名[数组大小] ---- c#:MarshalAs(UnmanagedType.ByValTStr, SizeConst = 数组大小)]
public string 数组? ushort
//c++:char * ---- c#:string
//c++:char * ---- c#:StringBuilder
//传出参数
//c++:char *变量?nbsp; ---- c#:ref string 变量?nbsp;
//c++:char *输出变量?nbsp; ---- c#:[MarshalAs(UnmanagedType.LPStr)] StringBuilder 输出变量?nbsp;
//c++:char ** ---- c#:string
//c++:char **变量?nbsp; ---- c#:ref string 变量?nbsp;
//c++:const char * ---- c#:string
//c++:char[] ---- c#:string
//c++:char 变量名[数组大小] ---- c#:[MarshalAs(UnmanagedType.ByValTStr,SizeConst=数组大小)] public string 变量?
//c++:int ---- c#:int
//c++:int ---- c#:ref int
//c++:int & ---- c#:ref int
//c++:int * ---- c#:ref int
//C#中调用前需定义int 变量?= 0;
//c++:*int ---- c#:IntPtr
//c++:int32 PIPTR * ---- c#:int32[]
//c++:float PIPTR * ---- c#:float[]
//c++:double** 数组?nbsp; ---- c#:ref double 数组?nbsp;
//c++:double*[] 数组?nbsp; ---- c#:ref double 数组?nbsp;
//c++:long ---- c#:int
//c++:ulong ---- c#:int
//c++:UINT8 * ---- c#:ref byte
//C#中调用前需定义byte 变量?= new byte();
//c++:handle ---- c#:IntPtr
//c++:hwnd ---- c#:IntPtr
//c++:void * ---- c#:IntPtr
//c++:void * user_obj_param ---- c#:IntPtr user_obj_param
//c++:void * 对象名称 ---- c#:([MarshalAs(UnmanagedType.AsAny)]Object 对象名称
//c++:char, INT8, SBYTE, CHAR ---- c#:System.SByte
//c++:short, short int, INT16, SHORT ---- c#:System.Int16
//c++:int, long, long int, INT32, LONG32, BOOL , INT ---- c#:System.Int32
//c++:__int64, INT64, LONGLONG ---- c#:System.Int64
//c++:unsigned char, UINT8, UCHAR , BYTE ---- c#:System.Byte
//c++:unsigned short, UINT16, USHORT, WORD, ATOM, WCHAR , __wchar_t ---- c#:System.UInt16
//Struct需要在C#里重新定义一个Struct
//CallBack回调函数需要封装在一个委托里Qdelegate static extern int FunCallBack(string str);
//unsigned char** ppImage替换成IntPtr ppImage
//int& nWidth替换成ref int nWidth
//int*, int&, 则都可用 ref int 对应
//双针指类型参敎ͼ可以?ref IntPtr
//函数指针使用c++: typedef double (*fun_type1)(double); 对应 c#:public delegate double fun_type1(double);
//char* 的操作c++: char*; 对应 c#:StringBuilder;
//c#中用指?在需要用指针的地方 ?unsafe
]]>
1、?span style="color: #0000ff;">imread载入囑փ
2、?span style="color: #0000ff;">cvtColor图像冲BGR格式转换?span style="color: #0000ff;">Grayscale格式
3、?span style="color: #0000ff;">imwrite{换好的图像保存到盘?
源码Q?/strong>
2 #include <highgui.h>
3
4 using namespace cv;
5
6 int main(int argc, char ** argv)
7 {
8 char* imageName = argv[1];
9 Mat image;
10 image = imread(imageName, 1);
11
12 if (2 != argc || !image.data)
13 {
14 printf("No image data\n");
15 return -1;
16 }
17
18 Mat gray_image;
19 cvtColor(image, gray_image, CV_BGR2GRAY);
20
21 imwrite("D:/images/Gray_Image.jpg", gray_image);
22
23 namedWindow(imageName, CV_WINDOW_AUTOSIZE);
24 namedWindow("Gray image", CV_WINDOW_AUTOSIZE);
25
26 imshow(imageName, image);
27 imshow("Gray image", gray_image);
28
29 waitKey(0);
30 return 0;
31 }
说明Q?/strong>
1、通过imread载入一?span style="color: #0000ff;">BGR囑փ?br />2、将囑փ?span style="color: #0000ff;">BGR转换?span style="color: #0000ff;">Grayscale格式Q?br />cvtColor( image, gray_image, CV_BGR2GRAY);
cvtColor参数Q?br />a、源囑փ(image)
b、目标图?gray_image)Q用于保存{换好的图像?br />c、指定{换类型?br />
3、保存图?br />imwrite("../../images/Gray_Image.jpg", gray_image);
4、最后通过H口昄囑փQ查看{换效果?br />
namedWindow("Gray image", CV_WINDOW_AUTOSIZE);
imshow("Gray image", gray_image);
l果Q?/strong>
]]>
学习Q?、?span style="color: #0000ff;">imread载入囑փ?br /> 2、?span style="color: #0000ff;">namedWindow创徏命名OpenCVH口?br /> 3、?span style="color: #0000ff;">imshow在OpenCVH口中显C图像?
源码Q?br />
2 #include <opencv2/highgui/highgui.hpp>
3 #include <iostream>
4
5 using namespace cv;
6 using namespace std;
7
8 int main(int argc, char ** argv)
9 {
10 if (2 != argc)
11 {
12 cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
13 return -1;
14 }
15
16 Mat image;
17 image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file
18
19 if (!image.data) // Check for invalid input
20 {
21 cout << "Could not open or find the image" << std::endl;
22 return -1;
23 }
24
25 namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display
26 imshow("Display window", image); // Show our image inside it.
27
28 waitKey(0); // wait for a keystroke in the window
29 return 0;
30 }
说明Q?br />在用OpenCV 2 的功能之前,几乎L要包?
1?span style="color: #0000ff;">core 部分Q定义库的基本构建块
2?span style="color: #0000ff;">highgui模块Q包含输入输出操作函数?br />
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
q需要include<iostream>q样更容易在console上输入。ؓ了避免数据结构和函数名称与其他库冲突QOpenCV有自q命名I间cv。当然ؓ了避免在每个关键字前都加cv::keywordQ可以在头部导入该命名空间?br />using namespace cv;
using namespace std;
需要在命o行输入有效的囑փ名称?br />
{
cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
然后创徏Mat对象用于存储载入的图像数据?br />Mat image;
调用imread函数载入囑փQ图像名UCؓargv[1]指定的)。第二个参数指定囑փ格式?br />1、CV_LOAD_IMAGE_UNCHANGED (<0) loads the image as is(including the alpha channel if present)
2、CV_LOAD_IMAGE_GRAYSCALE (0) loads the image as an intensity one
3、CV_LOAD_IMAGE_COLOR (>0) loads the image in the BGR format
Z查图像是否正常蝲入,我们?span style="color: #0000ff;">namedWindow函数创徏一个OpenCVH口来显C图像。需要指定窗口名U和大小?br />W二个参数默认ؓQWINDOW_AUTOSIZE
1?span style="color: #0000ff;">WINDOW_AUTOSIZE 只支持QTq_?br />2?span style="color: #0000ff;">WINDOW_NORMAL QT上支持窗口调整大?br />
最后在创徏的窗口中昄囑փ
l果
~译执行E序?br />./DisplayImage d:\apple.jpg
]]>
]]>
In the Internet address family, this structure is used by Windows Sockets to specify a local or remote endpoint address to which to connect a socket. This is the form of the sockaddr structure specific to the Internet address family and can be cast to sockaddr.
2 {
3 short sin_family; // (16?地址家族Q即指定地址格式Q,应ؓAF_INET。internetwork: UDP, TCP, etc.
4 unsigned short sin_port; // (16?端口?/span>
5 struct in_addr sin_addr // (32? IP地址
6 char sin_zero[8]; // (64? 填充Qɾl构体与SOCKADDR大小相同
7 }
8
9 d为:128位(?6字节Q?/span>
需要头文gQwinsock2.h
]]>
2 {
3 *y = *x ^ *y;
4 *x = *x ^ *y;
5 *y = *x ^ *y;
6 }
]]>