画像変換 EditToHeaderToFooter

Bitmap ==> Mat EditToHeaderToFooter

#code cpp

test

Plugin code: Usage:
#code[(Lang)]{{
src
}}

  • BitmapのPixelFormatとcvCreateImageのdepth,channelを対応させる必要あり:
    BitmapcvCreateImage
    PixelFormatdepthchannel
    Format8bppIndexed81
    Format24bppRgb83
    Format32bppRgba84
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
#spanend
    static Mat ToMat(Bitmap^ bitmap) {
        return Mat(ToIpl(bitmap));
    }
    static IplImage* ToIpl(Bitmap^ bitmap) {
        auto format = PixelFormat::Format32bppArgb;
        auto size = cvSize(bitmap->Width, bitmap->Height);
        int depth = 8;
        int channel = 4;
#spanadd
 
#spanend
        if (bitmap == nullptr) return 0;
        if (bitmap->PixelFormat != format) return 0;
#spanadd
 
#spanend
        IplImage* ipl = cvCreateImage(size, depth, channel);
#spanadd
 
#spanend
        BitmapData^ data = bitmap->LockBits(
            Drawing::Rectangle(0, 0, bitmap->Width, bitmap->Height),
            ImageLockMode::ReadWrite,
            format
        );
        memcpy_s(ipl->imageData, ipl->widthStep * ipl->height,
            data->Scan0.ToPointer(), data->Stride * data->Height
        );
        return (ipl);
    }
#spanadd
    呪文 一覧 検索 最新 バックアップ リンク元   ヘルプ   最終更新のRSS