Не работает программа на opencv C++
я только недавно начал разбираться в opencv и тут наткнулся на проблему. Не могу решить уже несколько дней. Перепробовал все что знал.
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/highgui.hpp>
using namespace cv;
using namespace std;
void CallBackFunc(int event, int x, int y, int flags, void* userdata){
bool drawing = false;
InputOutputArray image = (InputOutputArray)userdata;
switch (event) {
case EVENT_LBUTTONDOWN:
drawing = true;
cout << "Мышка нажата" << endl;
break;
case EVENT_MOUSEMOVE:
if (drawing == true) {
circle(image, Point(x, y), 3, (0, 0, 255));
cout << "circle" << endl;
}
break;
case EVENT_LBUTTONUP:
drawing = false;
cout << "Мышка не нажата" << endl;
break;
}
/*if (event == EVENT_LBUTTONDOWN){
drawing = true;
cout << "Мышка нажата" << endl;
}
else if (event == EVENT_MOUSEMOVE) {
cout << drawing;
if (drawing == true) {
cout << drawing;
circle(image,Point(x,y),3,(0,0,255));
cout << "circle" << endl;
}
}
else if(event == EVENT_LBUTTONUP){
drawing = false;
cout << "Мышка не нажата" << endl;
}*/
}
int main(int argc, char** argv)
{
setlocale(LC_ALL, "ru");
string nameimage;
cout << "Введите путь к файлу" << endl; cin >> nameimage;
Mat image = imread(nameimage);
if (image.empty())
{
cout << "Could not open or find the image" << endl;
cin.get(); //wait for any key press
return -1;
}
String windowName = "Window"; //Name of the window
namedWindow(windowName); // Create a window
imshow(windowName, image); // Show our image inside the created window.
setMouseCallback("Window", CallBackFunc);
waitKey(0); // Wait for any keystroke in the window
destroyWindow(windowName); //destroy the created window
return 0;
}
Почему то переменная drawing в функции CallBackFunc не хочет изменяться на значение true, но если сделать её глобальной то возникает ошибка: "Исключение не обработано Возникло необработанное исключение по адресу Ox00007FF9DODAА799 в орепcv.еxe: исключение Microsoft C ++: CV:Exception по адресу памяти Ох0000004F346FE2CO."