Я получаю некоторые ошибки нулевого указателя при выполнении версии выпуска некоторого кода обработки изображений, который я написал на этой неделе. Прошло много времени с тех пор, как я работал с C / C ++, поэтому я в замешательстве. Я работаю с OpenCV 3.1 в сообществе VS 2015, и мой код без проблем компилируется и выполняется в среде отладки. Однако, когда я запускаю его после компиляции в среде Release, я получаю нулевые ошибки ptr в самом начале.
#include "stdafx.h"#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include "opencv2/imgcodecs.hpp"#include <iostream>
using namespace cv;
using namespace std;
Я почти уверен, что это исключение из самых первых строк.
int main(int argc, char* argv[])
{
// reading in both tif files
Mat bg = imread(argv[1], 1);
Mat rad_film = imread(argv[2], 1);
Я получаю ошибку
Необработанное исключение: нарушение прав на чтение.
это был nullptr.
По какой-то причине кажется, что он читает пустое изображение / матрицу, но я понятия не имею, почему, тем более, что в среде отладки проблем нет.
Отладка также указывает на этот метод в классе Mat как источник проблемы
inline void Mat::release()
{
if( u && CV_XADD(&u->refcount, -1) == 1 )
deallocate();
u = NULL;
datastart = dataend = datalimit = data = 0;
for(int i = 0; i < dims; i++)
size.p[i] = 0;
}
Конкретно это дает &ты и «это» как вопросы. Я не уверен, как это интерпретировать.
Оба изображения, которые я обрабатываю, являются файлами .tif. Я очень новичок в OpenCV и Visual Studio, и хотя на этой неделе я столкнулся с некоторой путаницей, это первая проблема, в которой я действительно потерян. Любая помощь очень ценится!
Изменить: библиотеки, на которые я ссылаюсь как для выпуска, так и для отладки:
Что касается библиотек, я использую следующее для выпуска и отладки:
'opencv_calib3d310d.lib'
'opencv_core310d.lib'
'opencv_features2d310d.lib'
'opencv_flann310d.lib'
'opencv_highgui310d.lib'
'opencv_imgcodecs310d.lib'
'opencv_imgproc310d.lib'
opencv_ml310d.lib
opencv_objdetect310d.lib
opencv_photo310d.lib
opencv_shape310d.lib
opencv_stitching310d.lib
opencv_superres310d.lib
opencv_video310d.lib
opencv_videoio310d.lib
opencv_videostab310d.lib`
Задача ещё не решена.
Других решений пока нет …