我希望你能幫助我。OpenCV:在QImage上使用GaussianBlur或Sobel衍生物
我正在使用QT,並嘗試做一個簡單的圖像邊緣檢測。但是,當我啓動
cv::GaussianBlur(src, src, cv::Size(3,3), 0, 0, cv::BORDER_DEFAULT);
或
cv::Sobel(src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, cv::BORDER_DEFAULT);
我的程序崩潰這裏是我的代碼:
QImage *image1;
IplImage *cv_image1;
image1 = new QImage("./image.png"); // Format is ARGB32
cv_image1 = QImage2IplImage(image1);
cv::Mat src(cv_image1);
cv::imshow(window_name, src); // Work Well
cv::Mat src_gray;
int scale = 1;
int delta = 0;
int ddepth = CV_16S;
cv::GaussianBlur(src, src, cv::Size(3,3), 0, 0, cv::BORDER_DEFAULT); //Crash Here
cv::imshow(window_name, src);
我認爲這是格式的問題。 但在ARGB32中的另一個帶有QIMAGES的程序中,此代碼運行良好。 謝謝。
感謝這種轉換方法。 但它並沒有解決我的問題。 我會重試將OpenCV添加到我的項目的乾淨版本。 –
當您的代碼崩潰時,您收到的確切消息是什麼? – dom
好的,我在QTCreator的Application Output中收到「退出代碼-1073741819」。 –