У меня есть некоторый C++-код, который почему-то висит. Это код:
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
cout <<"started";
Mat im(256, 256, CV_8UC1, cv::Scalar(255));
for (int j = 0; j < 255; j++) {
for (int k = 0; k < 255; k++) {
if (k > j) {
cv::Mat black(im, cv::Rect(j, k, 1, 1));
black = cv::Scalar(0, 0, 0);
}
}
}
Mat image2;
//cvtColor(image, image2, CV_BGR2GRAY);
cout<<"started";
imshow("", im);
waitKey(0);
return 0;
}
Теперь, я пробовал это уже 3 дня, буквально стирая каждую строку этого кода и возвращая его обратно, все сводится к:
должен быть imshow(), который приводит к зависанию программы, так что изображение не отображается.
Странно то, что я дословно скопировал из своей старой программы, она работала, даже работала в новом проекте день, а потом ВНЕЗАПНО начала зависать, то есть программа просто работает и работает без какого-либо результата и ее нельзя закрыть вниз.
Очевидно, я должен упускать из виду что-то действительно основное здесь, но я просто не могу его найти.
Помогите, пожалуйста?
Моя ОС Ubuntu 15.10. Кроме того, я только что попробовал ответ SSteves => та же проблема. Значит, это какая-то утечка памяти, а не мой код, верно? Как, черт возьми, вы исправляете утечки памяти?