亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cvmat.hpp

?? OpenCV1.0 + C++Builder6 example of finding coners programm. Highlites coners it found in frame.
?? HPP
?? 第 1 頁 / 共 5 頁
字號(hào):
/*M///////////////////////////////////////////////////////////////////////////////////////
//
//  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
//  By downloading, copying, installing or using the software you agree to this license.
//  If you do not agree to this license, do not download, install,
//  copy or use the software.
//
//
//                        Intel License Agreement
//                For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
//   * Redistribution's of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//
//   * Redistribution's in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//
//   * The name of Intel Corporation may not be used to endorse or promote products
//     derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/

#ifndef _CVMAT_HPP_
#define _CVMAT_HPP_

#if 0 && (defined __cplusplus && (_MSC_VER>=1200 || defined __BORLANDC__ || defined __GNUC__))

#if _MSC_VER >= 1200
#pragma warning( disable: 4710 ) /* suppress "function ... is not inlined" */
#endif

#include <string.h>
#include <stdio.h>

#undef min
#undef max

/****************************************************************************************\
*                            C++ - like operations on CvScalar                           *
\****************************************************************************************/

inline CvScalar& operator += ( CvScalar& a, const CvScalar& b )
{
    double t0 = a.val[0] + b.val[0];
    double t1 = a.val[1] + b.val[1];
    a.val[0] = t0;
    a.val[1] = t1;

    t0 = a.val[2] + b.val[2];
    t1 = a.val[3] + b.val[3];
    a.val[2] = t0;
    a.val[3] = t1;

    return a;
}


inline CvScalar& operator -= ( CvScalar& a, const CvScalar& b )
{
    double t0 = a.val[0] - b.val[0];
    double t1 = a.val[1] - b.val[1];
    a.val[0] = t0;
    a.val[1] = t1;

    t0 = a.val[2] - b.val[2];
    t1 = a.val[3] - b.val[3];
    a.val[2] = t0;
    a.val[3] = t1;

    return a;
}


inline CvScalar& operator *= ( CvScalar& a, double b )
{
    double t0 = a.val[0] * b;
    double t1 = a.val[1] * b;
    a.val[0] = t0;
    a.val[1] = t1;

    t0 = a.val[2] * b;
    t1 = a.val[3] * b;
    a.val[2] = t0;
    a.val[3] = t1;

    return a;
}


inline CvScalar& operator /= ( CvScalar& a, double b )
{
    double inv_b = 1./b;
    double t0 = a.val[0] * inv_b;
    double t1 = a.val[1] * inv_b;
    a.val[0] = t0;
    a.val[1] = t1;

    t0 = a.val[2] * inv_b;
    t1 = a.val[3] * inv_b;
    a.val[2] = t0;
    a.val[3] = t1;

    return a;
}


inline CvScalar& operator *= ( CvScalar& a, const CvScalar& b )
{
    double t0 = a.val[0]*b.val[0] - a.val[1]*b.val[1] -
                a.val[2]*b.val[2] - a.val[3]*b.val[3];

    double t1 = a.val[0]*b.val[1] + a.val[1]*b.val[0] +
                a.val[2]*b.val[3] - a.val[3]*b.val[2];

    double t2 = a.val[0]*b.val[2] - a.val[1]*b.val[3] +
                a.val[2]*b.val[0] + a.val[3]*b.val[1];

    double t3 = a.val[0]*b.val[3] + a.val[1]*b.val[2] -
                a.val[2]*b.val[1] + a.val[3]*b.val[0];

    a.val[0] = t0;
    a.val[1] = t1;
    a.val[2] = t2;
    a.val[3] = t3;

    return a;
}


inline CvScalar& operator /= ( CvScalar& a, const CvScalar& b )
{
    double inv_d = -1./(b.val[0]*b.val[0] + b.val[1]*b.val[1] +
                        b.val[2]*b.val[2] + b.val[3]*b.val[3]);
    return a *= cvScalar( b.val[0] * -inv_d, b.val[1] * inv_d,
                          b.val[2] * inv_d, b.val[3] * inv_d );
}


inline CvScalar& operator += ( CvScalar& a, double b )
{
    a.val[0] += b;
    return a;
}


inline CvScalar& operator -= ( CvScalar& a, double b )
{
    a.val[0] -= b;
    return a;
}


inline CvScalar operator + ( const CvScalar& a, const CvScalar& b )
{
    return cvScalar( a.val[0] + b.val[0], a.val[1] + b.val[1],
                     a.val[2] + b.val[2], a.val[3] + b.val[3] );
}


inline CvScalar operator - ( const CvScalar& a, const CvScalar& b )
{
    return cvScalar( a.val[0] - b.val[0], a.val[1] - b.val[1],
                     a.val[2] - b.val[2], a.val[3] - b.val[3] );
}


inline CvScalar operator + ( const CvScalar& a, double b )
{
    return cvScalar( a.val[0] + b, a.val[1], a.val[2], a.val[3] );
}


inline CvScalar operator - ( const CvScalar& a, double b )
{
    return cvScalar( a.val[0] - b, a.val[1], a.val[2], a.val[3] );
}


inline CvScalar operator + ( double a, const CvScalar& b )
{
    return cvScalar( a + b.val[0], b.val[1], b.val[2], b.val[3] );
}


inline CvScalar operator - ( double a, const CvScalar& b )
{
    return cvScalar( a - b.val[0], -b.val[1], -b.val[2], -b.val[3] );
}


inline CvScalar operator - ( const CvScalar& b )
{
    return cvScalar( -b.val[0], -b.val[1], -b.val[2], -b.val[3] );
}


inline CvScalar operator * ( const CvScalar& a, const CvScalar& b )
{
    CvScalar c = a;

    return (c *= b);
}


inline CvScalar operator * ( const CvScalar& a, double b )
{
    return cvScalar( a.val[0]*b, a.val[1]*b, a.val[2]*b, a.val[3]*b );
}


inline CvScalar operator * ( double a, const CvScalar& b )
{
    return cvScalar( b.val[0]*a, b.val[1]*a, b.val[2]*a, b.val[3]*a );
}


inline CvScalar operator / ( const CvScalar& a, const CvScalar& b )
{
    CvScalar c = a;
    return (c /= b);
}


inline CvScalar operator / ( const CvScalar& a, double b )
{
    double inv_b = 1./b;
    return cvScalar( a.val[0]*inv_b, a.val[1]*inv_b,
                     a.val[2]*inv_b, a.val[3]*inv_b );
}


inline CvScalar operator / ( double a, const CvScalar& b )
{
    double inv_d = -a/(b.val[0]*b.val[0] + b.val[1]*b.val[1] +
                       b.val[2]*b.val[2] + b.val[3]*b.val[3]);
    return cvScalar( b.val[0] * -inv_d, b.val[1] * inv_d,
                     b.val[2] * inv_d, b.val[3] * inv_d );
}


inline CvScalar& operator &= ( CvScalar& a, const CvScalar& b )
{
    int t0 = cvRound(a.val[0]) & cvRound(b.val[0]);
    int t1 = cvRound(a.val[1]) & cvRound(b.val[1]);
    a.val[0] = t0;
    a.val[1] = t1;

    t0 = cvRound(a.val[2]) & cvRound(b.val[2]);
    t1 = cvRound(a.val[3]) & cvRound(b.val[3]);
    a.val[2] = t0;
    a.val[3] = t1;

    return a;
}


inline CvScalar& operator |= ( CvScalar& a, const CvScalar& b )
{
    int t0 = cvRound(a.val[0]) | cvRound(b.val[0]);
    int t1 = cvRound(a.val[1]) | cvRound(b.val[1]);
    a.val[0] = t0;
    a.val[1] = t1;

    t0 = cvRound(a.val[2]) | cvRound(b.val[2]);
    t1 = cvRound(a.val[3]) | cvRound(b.val[3]);
    a.val[2] = t0;
    a.val[3] = t1;

    return a;
}


inline CvScalar& operator ^= ( CvScalar& a, const CvScalar& b )
{
    int t0 = cvRound(a.val[0]) ^ cvRound(b.val[0]);
    int t1 = cvRound(a.val[1]) ^ cvRound(b.val[1]);
    a.val[0] = t0;
    a.val[1] = t1;

    t0 = cvRound(a.val[2]) ^ cvRound(b.val[2]);
    t1 = cvRound(a.val[3]) ^ cvRound(b.val[3]);
    a.val[2] = t0;
    a.val[3] = t1;

    return a;
}


inline CvScalar operator & ( const CvScalar& a, const CvScalar& b )
{
    CvScalar c = a;
    return (c &= b);
}


inline CvScalar operator | ( const CvScalar& a, const CvScalar& b )
{
    CvScalar c = a;
    return (c |= b);
}


inline CvScalar operator ^ ( const CvScalar& a, const CvScalar& b )
{
    CvScalar c = a;
    return (c ^= b);
}


inline CvScalar operator ~ ( const CvScalar& a )
{
    return cvScalar( ~cvRound(a.val[0]), ~cvRound(a.val[1]),
                     ~cvRound(a.val[2]), ~cvRound(a.val[3])); 
}


/****************************************************************************************\
*                                   C++ Matrix Class                                     *
\****************************************************************************************/

struct  _CvMATConstElem_;
struct  _CvMATElem_;
struct  _CvMATElemCn_;

struct  _CvMAT_T_;
struct  _CvMAT_MUL_;
struct  _CvMAT_INV_;
struct  _CvMAT_SCALE_;
struct  _CvMAT_SCALE_SHIFT_;
struct  _CvMAT_ADD_;
struct  _CvMAT_ADD_EX_;
struct  _CvMAT_MUL_ADD_;
struct  _CvMAT_LOGIC_;
struct  _CvMAT_UN_LOGIC_;
struct  _CvMAT_NOT_;
struct  _CvMAT_CVT_;
struct  _CvMAT_COPY_;
struct  _CvMAT_DOT_OP_;
struct  _CvMAT_SOLVE_;
struct  _CvMAT_CMP_;

class CV_EXPORTS CvMAT : public CvMat
{
protected:

public:
    /* helper methods for retrieving/setting matrix elements */
    static double get( const uchar* ptr, int type, int coi = 0 );
    static void set( uchar* ptr, int type, int coi, double d );
    static void set( uchar* ptr, int type, int coi, int i );
    static void set( uchar* ptr, int type, double d );
    static void set( uchar* ptr, int type, int i );

    /******************* constructors ********************/
    /* empty */
    explicit CvMAT();

    /* creation */
    explicit CvMAT( int rows, int cols, int type, void* data, int step = CV_AUTOSTEP );
    explicit CvMAT( int rows, int type, void* data, int step = CV_AUTOSTEP );
    explicit CvMAT( int rows, int cols, int type );
    explicit CvMAT( int rows, int type );
    
    /* extracting part of an existing matrix */
    explicit CvMAT( const CvMat& mat, CvRect rect ); /* submatrix */
    explicit CvMAT( const CvMat& mat, int k, int i ); /* submatrix:
                                                    k == 0 - i-th row
                                                    k > 0 - i-th column
                                                    k < 0 - i-th diagonal */
    /* copying */
    CvMAT( const CvMat& mat );
    CvMAT( const CvMAT& mat );
    CvMAT( const IplImage& img );

    /* CvMAT b = op(a1,a2,...) */
    explicit CvMAT( const _CvMAT_T_& mat_t );
    explicit CvMAT( const _CvMAT_INV_& inv_mat );
    explicit CvMAT( const _CvMAT_ADD_& mat_add );
    explicit CvMAT( const _CvMAT_ADD_EX_& mat_add );
    explicit CvMAT( const _CvMAT_SCALE_& scale_mat );
    explicit CvMAT( const _CvMAT_SCALE_SHIFT_& scale_shift_mat );
    explicit CvMAT( const _CvMAT_MUL_& mmul );
    explicit CvMAT( const _CvMAT_MUL_ADD_& mmuladd );
    explicit CvMAT( const _CvMAT_LOGIC_& mat_logic );
    explicit CvMAT( const _CvMAT_UN_LOGIC_& mat_logic );
    explicit CvMAT( const _CvMAT_NOT_& not_mat );
    explicit CvMAT( const _CvMAT_COPY_& mat_copy );
    explicit CvMAT( const _CvMAT_CVT_& mat_copy );
    explicit CvMAT( const _CvMAT_DOT_OP_& dot_mul );
    explicit CvMAT( const _CvMAT_SOLVE_& solve_mat );
    explicit CvMAT( const _CvMAT_CMP_& cmp_mat );

    /* desctructor */
    ~CvMAT();

    /* copying and filling with a constant */
    CvMAT& operator = ( const CvMAT& mat );
    CvMAT& operator = ( const CvMat& mat );
    CvMAT& operator = ( const IplImage& img );
    CvMAT& operator = ( double fillval );
    CvMAT& operator = ( const CvScalar& fillval );
    
    /* b = op(a1, a2,...) */
    CvMAT& operator = ( const _CvMAT_T_& mat_t );
    CvMAT& operator = ( const _CvMAT_INV_& inv_mat );
    CvMAT& operator = ( const _CvMAT_ADD_& mat_add );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美一区二区三区| 国产欧美一区二区在线观看| 麻豆高清免费国产一区| 国产日韩av一区| 欧美亚洲禁片免费| 高清在线观看日韩| 性做久久久久久免费观看欧美| 久久先锋影音av鲁色资源| 欧美三级韩国三级日本三斤| 国产一区二区三区在线观看精品 | 亚洲国产va精品久久久不卡综合| 日韩一区二区麻豆国产| 91碰在线视频| 国产不卡在线视频| 开心九九激情九九欧美日韩精美视频电影 | 亚洲视频1区2区| 欧美大片在线观看一区二区| 91国产精品成人| 国产91丝袜在线18| 另类的小说在线视频另类成人小视频在线 | 成人av片在线观看| 黑人巨大精品欧美一区| 亚洲va国产va欧美va观看| 国产欧美日本一区视频| 精品久久久三级丝袜| 欧美日韩三级视频| 在线视频欧美精品| 99久久精品免费看| 国产成人在线看| 激情综合色播五月| 日本视频在线一区| 性感美女极品91精品| 亚洲黄色尤物视频| 亚洲人成影院在线观看| 中文一区一区三区高中清不卡| 精品福利av导航| 日韩欧美资源站| 欧美一区二区视频网站| 欧美精品粉嫩高潮一区二区| 欧美午夜在线观看| 欧美中文字幕亚洲一区二区va在线| 不卡在线视频中文字幕| 懂色av一区二区夜夜嗨| 国产成人在线视频网址| 国产成人日日夜夜| 国产成人av一区二区| 国产精品亚洲一区二区三区妖精 | 91免费国产在线| 99久久久免费精品国产一区二区| 丁香婷婷深情五月亚洲| 成人午夜视频福利| 成人福利视频网站| 一本大道久久a久久精品综合| 91丨porny丨户外露出| 不卡一区二区在线| 91尤物视频在线观看| 色网站国产精品| 精品视频1区2区| 91精品国产综合久久久久久| 日韩欧美另类在线| 久久久99精品久久| 国产精品成人免费精品自在线观看 | 2020日本不卡一区二区视频| 国产亚洲午夜高清国产拍精品| 久久精品欧美一区二区三区不卡| 中文一区在线播放| 自拍av一区二区三区| 亚洲午夜免费电影| 麻豆91在线看| 国产成人夜色高潮福利影视| 不卡大黄网站免费看| 欧美午夜精品久久久| 91精品久久久久久久99蜜桃| 久久久亚洲综合| 最新不卡av在线| 丝袜美腿亚洲综合| 国产精品香蕉一区二区三区| 91麻豆精品视频| 日韩一区二区不卡| 中文字幕第一区二区| 一区二区三区久久久| 久久精品久久99精品久久| 国产成人免费网站| 欧美日韩在线一区二区| 久久这里都是精品| 亚洲男人的天堂在线观看| 日产国产高清一区二区三区| 高清av一区二区| 欧美色图片你懂的| 久久久精品免费网站| 亚洲一区免费视频| 国产一区三区三区| 欧美亚洲动漫精品| 国产亚洲精品bt天堂精选| 亚洲午夜一区二区三区| 国产综合久久久久久鬼色 | 亚洲精品国产一区二区三区四区在线 | 欧美一区二区三区免费在线看 | 亚洲成人动漫精品| 国产电影一区在线| 欧美日韩国产片| 中文字幕一区二区三区不卡 | 欧美伊人久久大香线蕉综合69| 欧美成人精品福利| 亚洲国产sm捆绑调教视频| 国产·精品毛片| 日韩美一区二区三区| 亚洲影视在线观看| 成人av影视在线观看| 欧美精品一区男女天堂| 亚洲福利一区二区| 91丨九色丨蝌蚪丨老版| 国产午夜精品一区二区三区四区| 天天亚洲美女在线视频| av网站免费线看精品| 久久嫩草精品久久久精品一| 亚洲国产一区二区三区青草影视| 不卡一区二区三区四区| 久久综合九色综合97婷婷| 视频一区中文字幕国产| 91免费看视频| 中文字幕在线观看不卡| 国产乱码字幕精品高清av| 欧美一区二区大片| 亚洲成人av在线电影| 日本精品视频一区二区| 国产精品久久久一本精品 | 亚洲裸体xxx| 成人激情电影免费在线观看| www国产精品av| 久国产精品韩国三级视频| 91精品欧美综合在线观看最新| 亚洲国产cao| 欧美日韩一区二区电影| 一区二区三区色| 日本伦理一区二区| 亚洲精品高清视频在线观看| 91一区二区三区在线观看| 国产精品污www在线观看| 国产成人综合精品三级| 日本一区二区三区四区| 国产成人自拍高清视频在线免费播放| 久久久久久一二三区| 国产一区二区三区蝌蚪| 久久久99精品免费观看不卡| 国产一区二区三区av电影 | 99视频一区二区| 亚洲欧美中日韩| 色综合激情久久| 亚洲影视在线播放| 欧美日韩国产片| 久久精品噜噜噜成人av农村| 欧美精品一区二区久久婷婷| 极品少妇一区二区三区精品视频| 久久一区二区三区国产精品| 国产精品白丝jk白祙喷水网站| 中文字幕国产一区| 99久久99久久精品免费看蜜桃| 亚洲精品免费电影| 51久久夜色精品国产麻豆| 美女一区二区三区| 国产亚洲自拍一区| 91在线观看下载| 亚洲成人福利片| 精品久久久网站| jizzjizzjizz欧美| 亚洲一区二区综合| 日韩欧美另类在线| 粉嫩绯色av一区二区在线观看| 亚洲日本在线a| 制服.丝袜.亚洲.另类.中文| 国产在线日韩欧美| 亚洲欧洲日产国码二区| 欧美日韩成人在线一区| 国内精品视频666| ...中文天堂在线一区| 欧美日韩和欧美的一区二区| 精彩视频一区二区三区| 国产精品传媒视频| 91麻豆精品国产自产在线 | 大尺度一区二区| 亚洲一区二区三区自拍| 欧美成人a在线| 91丨porny丨国产入口| 蜜臀av性久久久久av蜜臀妖精| 国产色91在线| 欧美日韩国产123区| 国产成人免费视频一区| 亚洲国产wwwccc36天堂| 久久久久久久电影| 欧美视频在线观看一区二区| 久久er99热精品一区二区| 综合网在线视频| 精品国产乱码久久久久久闺蜜| 91色porny| 国产黑丝在线一区二区三区| 亚洲电影一区二区三区| 国产欧美1区2区3区| 6080yy午夜一二三区久久| 99精品国产视频|