访问违规读取位置 OpenCV Canny 函数
Access violation reading location OpenCV Canny function
我在 OpeCV 中的项目有问题。我想得到图片,这是两张图片相减的结果,然后使用Canny Edge Detector得到标记的边缘,但只有我得到的是一个例外。
这是一个例外的打印屏幕:
这是我的代码:
#pragma once
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat pierwszy = imread("one.jpg", IMREAD_COLOR);
Mat drugi = imread("two.jpg", IMREAD_COLOR);
Mat wynik;
subtract(pierwszy, drugi , wynik);
imwrite("../../images/wynik.jpg", wynik);
Canny(wynik, wynik, 33, 100);
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", wynik);
waitKey(0);
return 0;
}
Mat 的对象大小相同。
要使用 Canny 边缘检测,我们需要制作灰度图像,就像 Miki 说的那样。现在我将函数 cvtColor
与 COLOR_BGR2GRAY
一起使用,我的代码如下所示:
#pragma once
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat pierwszy = imread("one.jpg", IMREAD_COLOR);
Mat drugi = imread("two.jpg", IMREAD_COLOR);
Mat wynik;
subtract(pierwszy, drugi , wynik);
imwrite("../../images/wynik.jpg", wynik);
Mat wynik_gray;
cvtColor(wynik, wynik_gray, COLOR_BGR2GRAY);
Canny(wynik_gray, wynik_gray, 33, 100);
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", wynik_gray);
waitKey(0);
return 0;
}
我在 OpeCV 中的项目有问题。我想得到图片,这是两张图片相减的结果,然后使用Canny Edge Detector得到标记的边缘,但只有我得到的是一个例外。
这是一个例外的打印屏幕:
这是我的代码:
#pragma once
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat pierwszy = imread("one.jpg", IMREAD_COLOR);
Mat drugi = imread("two.jpg", IMREAD_COLOR);
Mat wynik;
subtract(pierwszy, drugi , wynik);
imwrite("../../images/wynik.jpg", wynik);
Canny(wynik, wynik, 33, 100);
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", wynik);
waitKey(0);
return 0;
}
Mat 的对象大小相同。
要使用 Canny 边缘检测,我们需要制作灰度图像,就像 Miki 说的那样。现在我将函数 cvtColor
与 COLOR_BGR2GRAY
一起使用,我的代码如下所示:
#pragma once
#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat pierwszy = imread("one.jpg", IMREAD_COLOR);
Mat drugi = imread("two.jpg", IMREAD_COLOR);
Mat wynik;
subtract(pierwszy, drugi , wynik);
imwrite("../../images/wynik.jpg", wynik);
Mat wynik_gray;
cvtColor(wynik, wynik_gray, COLOR_BGR2GRAY);
Canny(wynik_gray, wynik_gray, 33, 100);
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", wynik_gray);
waitKey(0);
return 0;
}