• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 46  文章 - 39  trackbacks - 0
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            友情鏈接

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            5.3    移動操作

                本節(jié)介紹三種移動PTZ單元操作,絕對、相對或移動。所有操作都需要profile token,引用PTZ配置中的Media Profile。

                所有移動命令應(yīng)以非阻塞方式執(zhí)行,表示不應(yīng)等到請求的移動操作完成。新的移動請求可以覆蓋最后的移動操作。

                由于本規(guī)范涉及的物理設(shè)備范圍廣泛,因此本規(guī)范不要求對PTZ移動操作的特定相應(yīng)時(shí)間。但是設(shè)備應(yīng)盡量減少PTZ移動命令響應(yīng)的延遲。設(shè)備沒有完全控制PTZ控制輸入和設(shè)備移動的滯后。網(wǎng)絡(luò)與客戶端的延遲會增加滯后。實(shí)現(xiàn)應(yīng)該盡快減少設(shè)備的延遲。

            5.3.1.    絕對移動(AbsoluteMove)
                如果PTZ節(jié)點(diǎn)支持絕對水平/俯仰或絕對變焦的移動,則應(yīng)支持絕對移動操作。這個(gè)命令的位置參數(shù)指定PTZ單元要移動的絕對位置。它分為一個(gè)可選的水平/俯仰元素和一個(gè)可選的變焦元素。如果忽略了水平/俯仰位置,則當(dāng)前的水平/俯仰運(yùn)動不受此命令的影響。變焦也是同樣的原理。

                PTZ節(jié)點(diǎn)支持的絕對位置空間,如果省略了空間信息,則PTZ配置的相應(yīng)的默認(rèn)空間,采用指定控件的媒體屬性。設(shè)備僅為有絕對位置空間提供支持絕對水平/俯仰或變焦的服務(wù)。現(xiàn)有的移動操作命令中的速度參數(shù)比PTZ配置中的默認(rèn)速度優(yōu)先級要高。如果空間引用了速度參數(shù),那么需要支持PTZ節(jié)點(diǎn)支持的速度空間。

                如果無法達(dá)到所要求的絕對位置,操作將失敗。

            請求(REQUEST):
            • ProfileToken [tt:ReferenceToken]
            對現(xiàn)有媒體配置文件的引用
            • Position [tt:PTZVector]
            指定絕對目標(biāo)位置的矢量
            • Speed – 可選[tt:PTZSpeed]
            可選速度矢量
            響應(yīng)(RESPONSE): 空消息
            錯(cuò)誤(FAULTS)
            • env:Sender - ter:InvalidArgVal - ter:NoProfile
            請求的配置文件token內(nèi)ProfileToken不存在。
            • env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
            請求的配置文件token未引用PTZ配置。
            • env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
            引用了PTZ節(jié)點(diǎn)不支持的空間。
            • env:Sender - ter:InvalidArgVal - ter:InvalidPosition
            請求的位置超出了界限。
            • env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
            請求的速度超出了界限。
            訪問權(quán)限類(ACCESS CLASS)
            ACTUATE

            5.3.2.    相對移動(RelativeMove)

                如果PTZ節(jié)點(diǎn)支持相對水平/俯仰或相對變焦移動,則需要支持相對移動(RelativeMove)操作。此操作的轉(zhuǎn)換參數(shù)指定當(dāng)前位置與要移動的位置的插值。該操作可分為一個(gè)可選的水平/俯仰元素和一個(gè)可選的變焦參數(shù)。如果水平/俯仰忽略掉了,那么當(dāng)前的水平/俯仰位置不會受此命令的影響。變焦元素也同樣。
                轉(zhuǎn)換元素中引用的空間應(yīng)該為PTZ節(jié)點(diǎn)支持的轉(zhuǎn)換空間。如果轉(zhuǎn)換參數(shù)的空間信息忽略掉了,那么將根據(jù)PTZ配置的默認(rèn)空間。設(shè)備需要支持相對水平/俯仰移動,相對變焦移動或不支持相對運(yùn)動。
                在請求移動的命令中攜帶的速度參數(shù)優(yōu)先于PTZ配置中的默認(rèn)速度。如果空間引用了速度參數(shù),則PTZ節(jié)點(diǎn)需要支持速度空間。
                通過發(fā)送水平/俯仰和變焦0值命令可以在當(dāng)前位置停止PTZ單元。停止應(yīng)具有與引用相對空間完全相同的效果。
                如果請求轉(zhuǎn)換后的絕對位置是無法到達(dá)的,那么PTZ節(jié)點(diǎn)需要移動最接近的有效位置。
            請求(REQUEST):
            • ProfileToken [tt:ReferenceToken]
            對現(xiàn)有媒體配置文件的引用
            • Translation [tt:PTZVector]
            指定相對于當(dāng)前位置的位置平移的向量
            • Speed – 可選[tt:PTZSpeed]
            可選速度矢量
            響應(yīng)(RESPONSE): 空消息
            錯(cuò)誤(FAULTS)
            • env:Sender - ter:InvalidArgVal - ter:NoProfile
            請求的配置文件token內(nèi)ProfileToken不存在。
            • env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
            請求的配置文件token未引用PTZ配置。
            • env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
            引用了PTZ節(jié)點(diǎn)不支持的空間。
            • env:Sender - ter:InvalidArgVal - ter:InvalidTranslation
            請求的轉(zhuǎn)換超出了界限。
            • env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
            請求的速度超出了界限。
            訪問權(quán)限類(ACCESS CLASS)
            ACTUATE

            5.3.3.    連續(xù)移動(ContinuousMove)

                具有PTZ功能的設(shè)備應(yīng)支持連續(xù)移動。此命令的速度參數(shù)為水平/俯仰和縮放指定的有符號的速度值。組合的水平/俯仰元素及變焦元素也是可選的。如果水平/俯仰元素忽略掉了,當(dāng)前的水平/俯仰元素則不受此命令的影響。變焦元素也是如此。引用有速度元素的空間的PTZ節(jié)點(diǎn)需要支持速度空間。如果速度參數(shù)忽略掉了空間信息,那么采用相應(yīng)的指定媒體文件的PTZ配置的默認(rèn)空間。設(shè)備通過僅為支持的情況提供速度空間來支持連續(xù)水平/俯仰移動和連續(xù)變焦動作。
                當(dāng)前移動操作的超時(shí)參數(shù)優(yōu)先于相應(yīng)PTZ配置的默認(rèn)超時(shí)參數(shù)。超時(shí)參數(shù)決定PTZ節(jié)點(diǎn)的連續(xù)移動的時(shí)間。
                當(dāng)0作為該軸的連續(xù)移動參數(shù)時(shí),設(shè)備應(yīng)停止在特定軸(水平,俯仰或變焦)的移動。引用的速度空間也應(yīng)有獨(dú)立的停止功能。這個(gè)命令在連續(xù)移動的影響與在5.3.5節(jié)中的停止命令是一樣的。
                請求的速度得到的絕對位置是不能到達(dá)的,則PTZ節(jié)點(diǎn)應(yīng)移動到最接近的能到達(dá)的位置。連續(xù)移動操作的典型應(yīng)用是通過操縱桿控制PTZ。
            請求(REQUEST):
            • ProfileToken [tt:ReferenceToken]
            對現(xiàn)有媒體配置文件的引用
            • Velocity [tt:PTZSpeed]
            速度矢量指定水平,俯仰和變焦的速度。
            • Timeout– 可選[tt:duration]
            可選超時(shí)
            響應(yīng)(RESPONSE): 空消息
            錯(cuò)誤(FAULTS)
            • env:Sender - ter:InvalidArgVal - ter:NoProfile
            請求的配置文件token內(nèi)ProfileToken不存在。
            • env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
            請求的配置文件token未引用PTZ配置。
            • env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
            引用了PTZ節(jié)點(diǎn)不支持的空間。
            • env:Sender - ter:InvalidArgVal - ter:InvalidTranslation
            請求的轉(zhuǎn)換超出了界限。
            • env:Sender - ter:InvalidArgVal - ter:TimeoutNotSupported
            指定的超時(shí)參數(shù)不在支持的超時(shí)時(shí)間范圍內(nèi)。
            • env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
            請求的速度超出了界限。
            訪問權(quán)限類(ACCESS CLASS)
            ACTUATE

            5.3.4.    地理移動(GeoMove)

                設(shè)備有GeoMove信號,則PTZ節(jié)點(diǎn)需要支持這類命令。
                可選的AreaHeight和AreaWidth參數(shù)可以添加到參數(shù)中,所以PTZ設(shè)備可以決定變焦因子。如果沒有提供AreaHeight和AreaWidth,該單元將不會更改變焦。AreaHeight和AreaWidth用米來表示。
                請求的轉(zhuǎn)換過程中的速度參數(shù)優(yōu)先于相應(yīng)的PTZ配置的默認(rèn)速度。如果引用的空間含有速度參數(shù),那么PTZ節(jié)點(diǎn)應(yīng)支持速度空間。
                如果PTZ設(shè)備不支持自動檢索地理位置,那么在執(zhí)行地理引用命令之前使用SetGeoLocation進(jìn)行設(shè)置。客戶端如果在設(shè)備設(shè)置地理位置之前發(fā)送GeoMove命令,設(shè)備應(yīng)返回一個(gè)錯(cuò)誤。
                取決于PTZ設(shè)備的運(yùn)動方式,請求的位置可能無法到達(dá)。這種情況下設(shè)備應(yīng)返回一個(gè)錯(cuò)誤,表示由于物理限制無法執(zhí)行請求的操作。
            請求(REQUEST):
            • ProfileToken [tt:ReferenceToken]
            對現(xiàn)有媒體配置文件的引用
            • Target [tt:GeoLocation]
            目標(biāo)坐標(biāo)。
            • Speed – 可選[tt:PTZSpeed]
            指定水平,俯仰和變焦的速度矢量。
            • AreaWidth – 可選[xs:float]
            要顯示的可選區(qū)域。
            • AreaHeight – 可選[xs:float]
            要顯示的可選區(qū)域。

            響應(yīng)(RESPONSE): 空消息
            錯(cuò)誤(FAULTS)
            • env:Sender - ter:InvalidArgVal - ter:NoProfile
            請求的配置文件token內(nèi)ProfileToken不存在。
            • env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
            請求的配置文件token未引用PTZ配置。
            • env:Sender - ter:InvalidArgVal - ter:GeoMoveNotSupported
            設(shè)備不支持地理移動。
            • env:Sender - ter:InvalidArgVal - ter:UnreachablePosition
            請求的轉(zhuǎn)換超出了界限。
            • env:Sender - ter:InvalidArgVal - ter:TimeoutNotSupported
            指定的超時(shí)參數(shù)不在支持的超時(shí)時(shí)間范圍內(nèi)。
            • env:Sender - ter:InvalidArgVal - ter:GeoLocationUnknown
            由于地理位置未配置或不可用,該單元無法執(zhí)行GeoMove。
            訪問權(quán)限類(ACCESS CLASS)
            ACTUATE

            5.3.5.    停止(Stop)

                PTZ設(shè)備需支持停止操作。如果沒有指定停止的參數(shù),那么這個(gè)命令將停止所有正在進(jìn)行的水平,俯仰和變焦動作。通過指定相應(yīng)的停止參數(shù)可以停止對應(yīng)的操作。
            請求(REQUEST):
            • ProfileToken [tt:ReferenceToken]
            對現(xiàn)有媒體配置文件的引用
            • PanTilt – 可選[xs:boolean]
            停止水平和俯仰操作(默認(rèn)為true)。
            • Zoom – 可選[xs:boolean]
            停止變焦操作(默認(rèn)為true)。
            響應(yīng)(RESPONSE): 空消息
            錯(cuò)誤(FAULTS)
            • env:Sender - ter:InvalidArgVal - ter:NoProfile
            請求的配置文件token內(nèi)ProfileToken不存在。
            • env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
            請求的配置文件token未引用PTZ配置。
            訪問權(quán)限類(ACCESS CLASS)
            ACTUATE

            5.3.6.    移動并開始跟蹤(MoveAndStartTracking)

                設(shè)備PTZ節(jié)點(diǎn)有MoveAndTrack時(shí)應(yīng)該支持這個(gè)命令。這個(gè)操作的目的是向設(shè)備發(fā)送一個(gè)自動命令:移動攝像機(jī)到想要的位置然后通過追蹤算法代理PTZ操作。使用原子命令,延遲被最小化。移動位置是可選的且可以按照三種模式進(jìn)行設(shè)置:
            • 通過地理位置坐標(biāo)
            • 通過預(yù)置位token
            • 通過PTZVector位置
                請求位置移動的的速度參數(shù)優(yōu)先于相應(yīng)的PTZ配置的默認(rèn)速度。如果引用空間含有速度參數(shù),那么PTZ節(jié)點(diǎn)需支持速度空間。
                如果在同一個(gè)設(shè)備中完成了偵察和追蹤,那么ObjectID引用可以作為參數(shù),以指定應(yīng)跟蹤哪個(gè)對象。
                請求的絕對位置設(shè)備無法到達(dá),則操作將失敗。
            請求(REQUEST):
            • ProfileToken [tt:ReferenceToken]
            對現(xiàn)有媒體配置文件的引用
            • GeoLocation  – 可選 [tt:GeoLocation]
            可選目標(biāo)坐標(biāo)。
            • PresetToken – 可選[tt:ReferenceToken]
            對一個(gè)存在的預(yù)置位token的可選應(yīng)用。
            • TargetPosition – 可選[tt:PTZVector]
            指定絕對目標(biāo)位置的可選向量。
            • Speed – 可選[tt:PTZSpeed]
            可選速度矢量。
            • ObjectID – 可選[tt:ObjectID]
            要跟蹤對象的可選Object ID。
            響應(yīng)(RESPONSE): 空消息
            錯(cuò)誤(FAULTS)
            • env:Sender - ter:InvalidArgVal - ter:NoProfile
            請求的配置文件token內(nèi)ProfileToken不存在。
            • env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
            請求的配置文件token未引用PTZ配置。
            • env:Sender - ter:InvalidArgVal - ter:SpaceNotSupported
            引用了PTZ節(jié)點(diǎn)不支持的空間。
            • env:Sender - ter:InvalidArgVal - ter:InvalidPosition
            請求的位置超出了界限。
            • env:Sender - ter:InvalidArgVal - ter:InvalidSpeed
            請求的速度超出了界限。
            • env:Sender - ter:InvalidArgVal - ter:GeoMoveNotSupported
            設(shè)備不支持地理移動。
            • env:Sender - ter:InvalidArgVal - ter:UnreachablePosition
            請求的轉(zhuǎn)換超出了界限。
            • env:Sender - ter:InvalidArgVal - ter:GeoLocationUnknown
            由于地理位置未配置或不可用,該單元無法執(zhí)行GeoMove。
            • env:Sender - ter:InvalidArgVal - ter:NoToken
            請求的預(yù)置位token不存在。
            訪問權(quán)限類(ACCESS CLASS)
            ACTUATE

            5.3.7.    狀態(tài)獲取(GetStatus)

            PTZ設(shè)備需支持通過GetStatus命令報(bào)告PTZ狀態(tài)。PTZ狀態(tài)包含以下信息:
            • 位置Position (可選) – 引用空間指定云臺單元的絕對位置。相應(yīng)PTZ配置的默認(rèn)絕對空間應(yīng)在位置元素中引用。如果設(shè)備有StatusPosition能力,則需要顯示此信息。
            • 移動狀態(tài)MoveStatus(可選) – 表示水平/俯仰/變焦設(shè)備單元當(dāng)前是否正在移動、空閑或處于位置狀態(tài)。如果設(shè)備有MoveStatus能力,則需要顯示此信息。未知狀態(tài)不應(yīng)在正常錯(cuò)誤中使用,但是在初始化或錯(cuò)誤狀況下使用。
            • 錯(cuò)誤Error (可選) – 表示當(dāng)前PTZ錯(cuò)誤狀態(tài)。MoveStatus未知狀態(tài)時(shí),顯示這個(gè)字段。
            • 國際標(biāo)準(zhǔn)時(shí)間 UTC Time – 指定生成狀態(tài)時(shí)的UTC時(shí)間。
            請求(REQUEST):
            • ProfileToken [tt:ReferenceToken]
            對現(xiàn)有媒體配置文件的引用
            響應(yīng)(RESPONSE): 空消息
            • PTZStatus[tt:PTZStatus]
            請求媒體文件的PTZStatus。
            錯(cuò)誤(FAULTS)
            • env:Sender - ter:InvalidArgVal - ter:NoProfile
            請求的配置文件token內(nèi)ProfileToken不存在。
            • env:Sender - ter:InvalidArgVal - ter:NoPTZProfile
            請求的配置文件token未引用PTZ配置。
            • env:Receiver – ter:Action - ter:NoStatus
            請求的媒體配置文件中沒有可用的PTZ狀態(tài)。
            訪問權(quán)限類(ACCESS CLASS)
                READ_MEDIA

            posted @ 2021-06-19 20:38 canaan 閱讀(2515) | 評論 (0)編輯 收藏
                 摘要:   5.   服務(wù) 5.1      PTZ節(jié)點(diǎn) 5.1.1.   常規(guī)          支持PTZ的設(shè)備可以有多個(gè)PTZ節(jié)點(diǎn)。PTZ節(jié)點(diǎn)可以表示機(jī)械PTZ驅(qū)動器。上傳的云臺驅(qū)動程序或數(shù)字...  閱讀全文
            posted @ 2021-06-17 16:34 canaan 閱讀(1581) | 評論 (0)編輯 收藏
                 摘要: 1.   范圍          本文檔定義了用于配置和操作云臺變焦控制器的web服務(wù)接口。此外,還定義了相關(guān)事件。 Web服務(wù)的使用不在本文檔的范圍內(nèi)。請參考ONVIF核心規(guī)范。 2.   引用標(biāo)準(zhǔn) ONVIF核心規(guī)范 <http://www...  閱讀全文
            posted @ 2021-06-16 21:59 canaan 閱讀(1805) | 評論 (0)編輯 收藏
            縱觀歷史,一代代偉人,哲學(xué)家,或是帝國;
            曾經(jīng)的波斯帝國,你在哪里?
            曾經(jīng)的亞歷山大,又去了何方,是否也漸漸被人遺忘?
            埃及艷后,伊麗莎白,你們的名氣雖大,但終歸已是塵土。

            橫看世界,地球你在太陽系中算小的;
            太陽系你在銀河系中又是怎樣的地位?
            銀河系啊,你在宇宙中又占哪個(gè)位置?

            人啊,你在地球上可以算是一個(gè)管理者。
            你今日為房子勞碌而委屈了自己,你自己有想過嗎?
            你昨日因?yàn)橐患∈露鴲瀽炆鷼猓趾伪啬兀?br/>
            我不知是明天太陽先升起,還是意外先來臨。
            曾經(jīng)你相信生活不止眼前的茍且,現(xiàn)在還相信還有詩和遠(yuǎn)方的田野嗎?

            你是否將自己局限在自己想象的框架中了呢?

            posted @ 2017-08-05 23:26 canaan 閱讀(943) | 評論 (2)編輯 收藏
            c#與C++類型轉(zhuǎn)換,網(wǎng)摘2011-12-08 8:33//c++:HANDLE(void   *)          ----    c#:System.IntPtr      
            //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 輸出變量名    ----    c#:StringBuilder 輸出變量名      
            //c++:LPCWSTR   ----    c#:IntPtr      
            //c++:BOOL      ----    c#:bool         
            //c++:HMODULE   ----    c#:IntPtr          
            //c++:HINSTANCE ----    c#:IntPtr       
            //c++:結(jié)構(gòu)體    ----    c#:public struct 結(jié)構(gòu)體{};       
            //c++:結(jié)構(gòu)體 **變量名   ----    c#:out 變量名 
            //C#中提前申明一個(gè)結(jié)構(gòu)體實(shí)例化后的變量名      
            //c++:結(jié)構(gòu)體 &變量名    ----    c#:ref 結(jié)構(gòu)體變量名               
            //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 變量名      ----    c#:byte 變量名      
            //c++:unsigned short 變量名     ----    c#:ushort 變量名      
            //c++:unsigned int 變量名       ----    c#:uint 變量名      
            //c++:unsigned long 變量名      ----    c#:ulong 變量名      
            //c++:char 變量名       ----    c#:byte 變量名 
            //C++中一個(gè)字符用一個(gè)字節(jié)表示,C#中一個(gè)字符用兩個(gè)字節(jié)表示      
            //c++:char 數(shù)組名[數(shù)組大小]     ----    c#:MarshalAs(UnmanagedType.ByValTStr, SizeConst = 數(shù)組大小)]      
            public string 數(shù)組名; ushort      
            //c++:char *            ----    c#:string     
            //傳入?yún)?shù)      
            //c++:char *            ----    c#:StringBuilder
            //傳出參數(shù)      
            //c++:char *變量名      ----    c#:ref string 變量名      
            //c++:char *輸入變量名  ----    c#:string 輸入變量名      
            //c++:char *輸出變量名  ----    c#:[MarshalAs(UnmanagedType.LPStr)] StringBuilder 輸出變量名      
            //c++:char **           ----    c#:string      
            //c++:char **變量名     ----    c#:ref string 變量名      
            //c++:const char *      ----    c#:string      
            //c++:char[]            ----    c#:string      
            //c++:char 變量名[數(shù)組大小]     ----    c#:[MarshalAs(UnmanagedType.ByValTStr,SizeConst=數(shù)組大小)] public string 變量名;   
            //c++:struct 結(jié)構(gòu)體名 *變量名   ----    c#:ref 結(jié)構(gòu)體名變量名      
            //c++:委托 變量名   ----    c#:委托變量名      
            //c++:int       ----    c#:int      
            //c++:int       ----    c#:ref int      
            //c++:int &     ----    c#:ref int      
            //c++:int *     ----    c#:ref int    
            //C#中調(diào)用前需定義int 變量名 = 0;      
            //c++:*int      ----    c#:IntPtr      
            //c++:int32 PIPTR *     ----    c#:int32[]      
            //c++:float PIPTR *     ----    c#:float[]              
            //c++:double** 數(shù)組名          ----    c#:ref double 數(shù)組名      
            //c++:double*[] 數(shù)組名          ----    c#:ref double 數(shù)組名      
            //c++:long          ----    c#:int      
            //c++:ulong         ----    c#:int              
            //c++:UINT8 *       ----    c#:ref byte     
            //C#中調(diào)用前需定義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        
            //c++:unsigned, unsigned int, UINT32, ULONG32, DWORD32, ULONG, DWORD, UINT      ----    c#:System.UInt32        
            //c++:unsigned __int64, UINT64, DWORDLONG, ULONGLONG                            ----    c#:System.UInt64        
            //c++:float, FLOAT                                                              ----    c#:System.Single        
            //c++:double, long double, DOUBLE                                               ----    c#:System.Double        
            //Win32 Types        ----  CLR Type                
            //Struct需要在C#里重新定義一個(gè)Struct      
            //CallBack回調(diào)函數(shù)需要封裝在一個(gè)委托里,delegate static extern int FunCallBack(string str);      
            //unsigned char** ppImage替換成IntPtr ppImage      
            //int& nWidth替換成ref int nWidth      
            //int*, int&, 則都可用 ref int 對應(yīng)      
            //雙針指類型參數(shù),可以用 ref IntPtr      
            //函數(shù)指針使用c++: typedef double (*fun_type1)(double); 對應(yīng) c#:public delegate double  fun_type1(double);      
            //char* 的操作c++: char*; 對應(yīng) c#:StringBuilder;      
            //c#中使用指針:在需要使用指針的地方 加 unsafe      
            //unsigned   char對應(yīng)public   byte      
            posted @ 2016-07-22 14:36 canaan 閱讀(391) | 評論 (0)編輯 收藏
            提示:學(xué)習(xí)這課之前,我們假設(shè)你已經(jīng)知道如何用imread載入圖像并用imshow顯示在窗口中。 如果還不知道那么先看
            新手入門學(xué)習(xí)OpenCV2.4.13 載入并顯示圖像 (二)
            目標(biāo):
            在這個(gè)教程中你將會學(xué)到:
            1、使用imread載入圖像
            2、使用cvtColor將圖像沖BGR格式轉(zhuǎn)換為Grayscale格式
            3、使用imwrite將轉(zhuǎn)換好的圖像保存到硬盤上

            源碼:
             1 #include <cv.h>
             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 }

            說明:
            1、通過imread載入一個(gè)BGR圖像。
            2、將圖像沖BGR轉(zhuǎn)換成Grayscale格式:
            cvtColor( image, gray_image, CV_BGR2GRAY);
            cvtColor參數(shù):
            a、源圖像(image)
            b、目標(biāo)圖像(gray_image),用于保存轉(zhuǎn)換好的圖像。
            c、指定轉(zhuǎn)換類型。

            3、保存圖像
            imwrite("../../images/Gray_Image.jpg", gray_image);

            4、最后通過窗口顯示圖像,查看轉(zhuǎn)換效果。
            namedWindow(imageName, CV_WINDOW_AUTOSIZE);
             namedWindow("Gray image", CV_WINDOW_AUTOSIZE);
             imshow(imageName, image);
             imshow("Gray image", gray_image);

            結(jié)果:
            posted @ 2016-07-12 07:40 canaan 閱讀(1125) | 評論 (0)編輯 收藏
            目標(biāo)
            學(xué)習(xí):1、使用imread載入圖像。
                     2、使用namedWindow創(chuàng)建命名OpenCV窗口。
                     3、使用imshow在OpenCV窗口中顯示圖像。

            源碼
             1 #include <opencv2/core/core.hpp>
             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 }

            說明
            在使用OpenCV 2 的功能之前,幾乎總是要包含
            1、core 部分,定義庫的基本構(gòu)建塊
            2、highgui模塊,包含輸入輸出操作函數(shù)。

             #include <opencv2/core/core.hpp>
             #include <opencv2/highgui/highgui.hpp>
             #include <iostream>

            還需要include<iostream>這樣更容易在console上輸出輸入。為了避免數(shù)據(jù)結(jié)構(gòu)和函數(shù)名稱與其他庫沖突,OpenCV有自己的命名空間cv。當(dāng)然為了避免在每個(gè)關(guān)鍵字前都加cv::keyword,可以在頭部導(dǎo)入該命名空間。
            using namespace cv;
            using namespace std;

            需要在命令行輸入有效的圖像名稱。
            if (2 != argc)
            {
                  cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
                  return -1;
            }
            然后創(chuàng)建Mat對象用于存儲載入的圖像數(shù)據(jù)。
            Mat image;

            調(diào)用imread函數(shù)載入圖像(圖像名稱為argv[1]指定的)。第二個(gè)參數(shù)指定圖像格式。
            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

            image = imread(argv[1], CV_LOAD_IMAGE_COLOR);      // Read the file
            如果第二個(gè)參數(shù)未指定,那么默認(rèn)為CV_LOAD_IMAGE_COLOR

            為了檢查圖像是否正常載入,我們用namedWindow函數(shù)創(chuàng)建一個(gè)OpenCV窗口來顯示圖像。需要指定窗口名稱和大小。
            第二個(gè)參數(shù)默認(rèn)為:WINDOW_AUTOSIZE
            1、WINDOW_AUTOSIZE    只支持QT平臺。
            2、WINDOW_NORMAL       QT上支持窗口調(diào)整大小。

            最后在創(chuàng)建的窗口中顯示圖像
            imshow("Display window", image);   
                                         
                 

            結(jié)果
            編譯執(zhí)行程序。
            ./DisplayImage d:\apple.jpg
            posted @ 2016-07-11 07:58 canaan 閱讀(962) | 評論 (0)編輯 收藏
            中國 中華 偉大 民國 民族,
            如何生成所有組合(例:中國,中華民族,中華民國,偉大中華,偉大中華民族) 。
            注意:中華民國,民國中華 算一個(gè)。
            posted @ 2012-11-13 11:57 canaan 閱讀(285) | 評論 (0)編輯 收藏
             
              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.
            1 struct sockaddr_in
            2 {
            3     short sin_family;             //  (16位)地址家族(即指定地址格式),應(yīng)為AF_INET。internetwork: UDP, TCP, etc.
            4     unsigned short sin_port;  // (16位)端口號
            5     struct in_addr sin_addr    // (32位) IP地址
            6     char sin_zero[8];            // (64位) 填充,使結(jié)構(gòu)體與SOCKADDR大小相同
            7 }
            8 
            9 總共為:128位(即16字節(jié))

             需要頭文件:winsock2.h
            posted @ 2012-07-12 16:28 canaan 閱讀(1226) | 評論 (0)編輯 收藏
            1 void inplace_swap(int *x, int *y)
            2 {
            3     *= *^ *y;
            4     *= *^ *y;
            5     *= *^ *y;
            6 }
            posted @ 2012-05-29 13:58 canaan 閱讀(1783) | 評論 (6)編輯 收藏
            僅列出標(biāo)題  下一頁
            9久久9久久精品| 国内精品久久久久久99蜜桃 | 亚洲精品无码专区久久同性男| 国产成人无码精品久久久久免费| 精品久久久久一区二区三区| 日韩欧美亚洲综合久久影院Ds | 久久精品亚洲中文字幕无码麻豆| 久久久国产精品网站| 亚洲国产综合久久天堂| 亚洲AV无码一区东京热久久| 久久精品国产亚洲αv忘忧草 | 99久久国产主播综合精品| 亚洲国产精品综合久久一线| 国产V亚洲V天堂无码久久久| 一本色道久久88综合日韩精品 | 精品久久久久久久久久中文字幕| 大香伊人久久精品一区二区| www久久久天天com| 久久福利资源国产精品999| 国产成人精品久久亚洲高清不卡| 7777久久久国产精品消防器材| 国产成人精品久久亚洲高清不卡| 99蜜桃臀久久久欧美精品网站| 香蕉久久AⅤ一区二区三区| 久久久久综合网久久| 潮喷大喷水系列无码久久精品 | 国产毛片久久久久久国产毛片| 国内精品久久人妻互换| 亚洲va国产va天堂va久久| 噜噜噜色噜噜噜久久| 色天使久久综合网天天| 久久综合九色综合欧美就去吻| 久久久久久青草大香综合精品| 亚洲国产成人久久精品影视| 久久精品国产免费| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久人人爽人人人人爽AV| 99久久做夜夜爱天天做精品| 性做久久久久久久久浪潮| 一级a性色生活片久久无| 色青青草原桃花久久综合|