私の仕事は、Kinect v2を使用してblobを追跡するプログラムにkinect V1を使ってブロブを追跡するプログラムを変換することです。MIplImageタイプの画像をBGRの色空間からHSVの色空間に変換する
最初のプログラムはC++で書かれており、opencvを使用します。新しいプログラムはC#で書かなければならないので、私はラッパーemgucvを使用しています。私は同じことを同等の方法をしようとしている、今
IplImage* frameVideo=cvCreateImage(cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),8,3);
IplImage *hsvImg=cvCreateImage(cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),8,3);
:
cvCvtColor(frameVideo,hsvImg,CV_BGR2HSV);
frameVideoとhsvImgは、次のように定義されています。
、ある時点での最初のプログラムは、この命令を使用していますC#とemgu。
私の同等の変数は、次のように定義されています。
MIplImage frameVideo = (MIplImage)Marshal.PtrToStructure(CvInvoke.cvCreateImage(new System.Drawing.Size(Globals.IMAGE_WIDTH, Globals.IMAGE_HEIGHT), IplDepth.IplDepth_8U, 3), typeof(MIplImage));
MIplImage hsvImg = (MIplImage)Marshal.PtrToStructure(CvInvoke.cvCreateImage(new System.Drawing.Size(Globals.IMAGE_WIDTH, Globals.IMAGE_HEIGHT), IplDepth.IplDepth_8U, 3), typeof(MIplImage));
emgu内部cvCvtColorの同等の方法があります、それは、その構文以下れるCvInvoke.CvtColor(、...)、次のとおりです。
public static void CvtColor(
IInputArray src,
IOutputArray dst,
ColorConversion code,
int dstCn = 0
)
この方法のマニュアルへ
リンク:http://www.emgu.com/wiki/files/3.0.0/document/html/80190679-ef98-e1ef-f6b6-4c8b9f3b7f64.htm
だから、私の問題は、この方法は、ソースとIOUとしてIInputArrayで動作するように要求することですtputArrayを宛先として使用していますが、そのメソッドで変数(MIplImage型)を使用する方法や、frameVideoをIInputArrayおよびhsvImgとIOutputArrayに関連付ける方法を見つけることができません。
私は画像タイプでこのメソッドを使用する方法を見つけましたが、このケースでは私のMIplImageフォーマットからImageに変換する方法が見つかりませんでした。
誰でも手伝ってもらえますか?
ご質問がある場合や、コードの詳細については、私にご連絡ください。
ありがとうございます!