Hallo ich versuche, diesen Beispielcode von OpenCV auszuführen:OpenCV Fehler: Assertion fehlgeschlagen (scn == 3 || scn == 4) in cv :: cvtColor, Datei .. .. .. .. opencv modules imgproc src color.cpp, Zeile 3737
#include "opencv2\opencv.hpp"
using namespace cv;
int main(int, char**)
{
VideoCapture cap(0); // open the default camera
if (!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
namedWindow("edges", 1);
for (;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if (waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
ich bin derzeit ein Windows 7 x64 Boot Camp auf einem Macbook Pro. Ich führe diesen Code mit Visual Studios 2013 und OpenCV 2.4.9.
Dies ist, wie ich habe meine einrichten Config Eigenschaften:
VC++ Directories: Include Directories: H:\opencv\build\include;$(IncludePath)
Linker:General:Additional Library Directories: H:\opencv\build\x64\vc12\lib;%(AdditionalLibraryDirectories)
Linker:Input:Additional Dependencies: opencv_calib3d249.lib;opencv_contrib249.lib;opencv_core249.lib;opencv_features2d249.lib;opencv_flann249.lib;opencv_gpu249.lib;opencv_highgui249.lib;opencv_imgproc249.lib;opencv_legacy249.lib;opencv_ml249.lib;opencv_nonfree249.lib;opencv_objdetect249.lib;opencv_ocl249.lib;opencv_photo249.lib;opencv_stitching249.lib;opencv_superres249.lib;opencv_ts249.lib;opencv_video249.lib;opencv_videostab249.lib;%(AdditionalDependencies)
Wenn ich auf lokale Windows-Debugger in Release x64-Modus bekomme ich folgende Fehler aus Visual Studios:
First-chance exception at 0x000007FEFD21B3DD in Project3.exe: Microsoft C++ exception: cv::Exception at memory location 0x000000000019A8A0.
If there is a handler for this exception, the program may be safely continued.
Wenn ich stattdessen auf Pause klicke (Angst, Continue zu drücken), erscheint ein Fenster namens Edges und die Kamera schaltet sich ein, da das grüne Licht aufleuchtet. Aber ich habe auch die folgenden Fehler in dem Befehlsfenster:
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cv:: cvtColor, file ........\opencv\modules\imgproc\src\color.cpp, line 3737
Ich bin ziemlich neu in C++ und Visual Studios, jede mögliche Hilfe würde geschätzt. Danke im Voraus!
funktioniert für mich "wie es ist". Dieser Fehler sollte bedeuten, dass Ihr Bild nicht RGB ist. – Miki
Sorry @Miki Ich bin sehr neu dazu. Wenn mein Bild nicht RGB ist, was soll ich tun, um es zu reparieren? –
Der Code funktioniert gut (es ist copy & paste aus den opencv-Dokumenten, richtig?), Also ist es kein Problem mit dem Code. Versuchen Sie, 'std :: cout << frame.channels(); std :: cout << kanten.channels();' vor cvtColor, es sollte eine Menge von 31 – Miki