Ich versuche, einen Film mit openCV zu machen. Ich kann alle Bilder in die AVI einfügen und es funktioniert gut, außer dass das Bild in einem großen Winkel geneigt ist. Es sieht so aus, als wäre es über das Bild verschmiert.Slanted Video in openCV
Die Rahmen sind perfekt quadratisch, so dass es nicht darum geht, Höhe und Breite zu verwechseln. Die Bilder sind 24 Bit. Die andere Sache, die seltsam ist, ist, dass es nicht konsistent erscheint, wenn es passiert. manchmal sieht es gut aus, manchmal ist es schräg. Hier
ist ein Bild aus dem Film: http://dl.dropbox.com/u/63600049/MIP.avi
Hier ist der Code:
PInvoke Methode
IntPtr _ptr = CvInvoke.cvCreateVideoWriter(AVIFilename, CvInvoke.CV_FOURCC('M', 'J', 'P', 'G'), 15, size, 1);
int count = 0;
for (int n = 1; n < Frames.Length; n++)
{
if (Frames[n].Trim().Length > 0)
{
try
{
FileInfo file = new FileInfo(Frames[n]);
IntPtr ptr = CvInvoke.cvLoadImage(file.FullName, Emgu.CV.CvEnum.LOAD_IMAGE_TYPE.CV_LOAD_IMAGE_ANYCOLOR | Emgu.CV.CvEnum.LOAD_IMAGE_TYPE.CV_LOAD_IMAGE_ANYDEPTH);
if (ptr == IntPtr.Zero)
throw new NullReferenceException(String.Format("Unable to load image from file \"{0}\".", file.FullName));
CvInvoke.cvWriteFrame(_ptr, ptr);
//VW.WriteFrame<Bgr, byte>(frame);
count++;
}
catch (Exception ex)
{
System.Diagnostics.Debug.Print(ex.Message);
}
}
}
CvInvoke.cvReleaseVideoWriter(ref _ptr);
EMGU Version
public static void CreateAVIVideoEMGU(string AVIFilename, string[] Frames)
{
Bitmap bitmap = new Bitmap(Frames[0]);
VideoWriter VW = null;
VW = new VideoWriter(AVIFilename, CvInvoke.CV_FOURCC('M', 'J', 'P', 'G'), 15, bitmap.Height, bitmap.Width, true);
int count = 0;
for (int n = 1; n < Frames.Length; n++)
{
if (Frames[n].Trim().Length > 0)
{
var frame = new Emgu.CV.Image<Bgr, byte>(ConvertBitmapTo24(new Bitmap (Frames[n])));
VW.WriteFrame<Bgr, byte>(frame);
count++;
}
}
VW.Dispose();
}
Die Bilder sind alle 24 Bit jpg mit den gleichen Abmessungen
Welche OpenCV-Version verwenden Sie und welches Betriebssystem ist das? (Win/Linux/Mac) – karlphillip
Es ist EMGU 2.3 64-Bit-Version (C# Wrapper von openCV 2.0). Ich benutze eine Windows 7-Maschine. – ochensati
Können Sie ein Bild des "verschmierten" Bildes posten? – mevatron