opencvスカラーの値が間違っています

漂白

この単純な関数では、RGB情報で構成される値をintからopencvScalarに変換します。

Scalar IntToScalarColour(int i){
    //Scalar scal((int)(i & 0x000000FF),(int)(i & 0x0000FF00),(int)(i & 0x00FF0000));
    int b = i & 0x000000FF;
    int g = i & 0x0000FF00;
    int r = i & 0x00FF0000;
    Scalar scal(b,g,r);
    return scal;
}

しかし、デバッグでは、scalの値が正しくないことがわかります。なにが問題ですか?

ここに画像の説明を入力してください

UPD。オープンCVではスカラーは

template<typename _Tp> class Scalar_ : public Vec<_Tp, 4>
{
public:
    //! various constructors
    Scalar_();
    Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0);
    Scalar_(const CvScalar& s);
    Scalar_(_Tp v0);

    //! returns a scalar with all elements set to v0
    static Scalar_<_Tp> all(_Tp v0);
    //! conversion to the old-style CvScalar
    operator CvScalar() const;

    //! conversion to another data type
    template<typename T2> operator Scalar_<T2>() const;

    //! per-element product
    Scalar_<_Tp> mul(const Scalar_<_Tp>& t, double scale=1 ) const;

    // returns (v0, -v1, -v2, -v3)
    Scalar_<_Tp> conj() const;

    // returns true iff v1 == v2 == v3 == 0
    bool isReal() const;
};

typedef Scalar_<double> Scalar;

そして

typedef struct CvScalar
{
    double val[4];
}
CvScalar;

何か案は?

値を8ビットに戻すのを忘れた(したがってオーバーフロー):

Scalar IntToScalarColour(int i){
    //Scalar scal((int)(i & 0x000000FF),(int)(i & 0x0000FF00),(int)(i & 0x00FF0000));
    uchar b = (i & 0x000000FF);
    uchar g = (i & 0x0000FF00) >> 8;
    uchar r = (i & 0x00FF0000) >> 16;
    Scalar scal(b,g,r);
    return scal;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

OpenCV 3、python 3 '画像ステップが間違っています'エラー

分類Dev

Photoshopのカラーピッカーの色が間違っています

分類Dev

カスタムmysqliクラスのbind_paramのパラメーター数が間違っています

分類Dev

woocommerceカテゴリのクラス名が間違っています

分類Dev

Rails移行エラーのデフォルト値が間違っています

分類Dev

httpパラメータ値の構文が間違っています

分類Dev

Laravelのフォームの値が間違っています

分類Dev

テキスト比較の値が間違っています

分類Dev

c ++ブーストtribool三項演算子の値が間違っています

分類Dev

DateTimeピッカーの日付が間違っています

分類Dev

DateTimeピッカーの日付が間違っています

分類Dev

Kerasのクラスの数が間違っています

分類Dev

Kmeans:クラスターのサイズが間違っています

分類Dev

FragmentStatePagerAdapterコンストラクターの定数が間違っています

分類Dev

XAMPPApacheサーバーのパスが間違っています

分類Dev

rpartツリーのラベルが間違っています

分類Dev

式の型が間違っています-Oracleエラー

分類Dev

AndroidStudioのカスタムクラスのファイルパスが間違っています

分類Dev

スカラのflatMap、コンパイラはそれが間違っていると言います

分類Dev

Oracle SQL:エラーコードごとのエラーカウントが間違っています

分類Dev

AVAssetExportSessionのフロントカメラの向きが間違っています

分類Dev

MOVF操作後の作業レジスタの値が間違っています

分類Dev

CS50スペラー(すべての単語のスペルが間違っています)

分類Dev

ストーリーボードで作成されたUIImageViewのフレーム値が間違っています

分類Dev

ReactのImmutable.jsシーケンスのループカウントが間違っています

分類Dev

bashスクリプトのステータス値が間違っています

分類Dev

Firebase CloudFunctionのローカリゼーションが間違っています

分類Dev

std :: vectorの最初の要素の値が間違っています

分類Dev

非表示のツールバーをスライドしたいのですが、間違っています

Related 関連記事

  1. 1

    OpenCV 3、python 3 '画像ステップが間違っています'エラー

  2. 2

    Photoshopのカラーピッカーの色が間違っています

  3. 3

    カスタムmysqliクラスのbind_paramのパラメーター数が間違っています

  4. 4

    woocommerceカテゴリのクラス名が間違っています

  5. 5

    Rails移行エラーのデフォルト値が間違っています

  6. 6

    httpパラメータ値の構文が間違っています

  7. 7

    Laravelのフォームの値が間違っています

  8. 8

    テキスト比較の値が間違っています

  9. 9

    c ++ブーストtribool三項演算子の値が間違っています

  10. 10

    DateTimeピッカーの日付が間違っています

  11. 11

    DateTimeピッカーの日付が間違っています

  12. 12

    Kerasのクラスの数が間違っています

  13. 13

    Kmeans:クラスターのサイズが間違っています

  14. 14

    FragmentStatePagerAdapterコンストラクターの定数が間違っています

  15. 15

    XAMPPApacheサーバーのパスが間違っています

  16. 16

    rpartツリーのラベルが間違っています

  17. 17

    式の型が間違っています-Oracleエラー

  18. 18

    AndroidStudioのカスタムクラスのファイルパスが間違っています

  19. 19

    スカラのflatMap、コンパイラはそれが間違っていると言います

  20. 20

    Oracle SQL:エラーコードごとのエラーカウントが間違っています

  21. 21

    AVAssetExportSessionのフロントカメラの向きが間違っています

  22. 22

    MOVF操作後の作業レジスタの値が間違っています

  23. 23

    CS50スペラー(すべての単語のスペルが間違っています)

  24. 24

    ストーリーボードで作成されたUIImageViewのフレーム値が間違っています

  25. 25

    ReactのImmutable.jsシーケンスのループカウントが間違っています

  26. 26

    bashスクリプトのステータス値が間違っています

  27. 27

    Firebase CloudFunctionのローカリゼーションが間違っています

  28. 28

    std :: vectorの最初の要素の値が間違っています

  29. 29

    非表示のツールバーをスライドしたいのですが、間違っています

ホットタグ

アーカイブ