c++ - 访问违规读取位置 OpenCV Canny 函数

标签 c++ opencv canny-operator

我在 OpeCV 中的项目有问题。我想获取图片,这是两张图片相减的结果,然后使用 Canny Edge Detector 获取标记边缘,但只有我得到的是异常。

这是一个异常(exception)的打印屏幕:

enter image description here

这是我的代码:

#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 的对象大小相同。

最佳答案

要使用 Cany Edge Detector,我们需要制作灰度图像,如 Miki 所说。现在我将函数 cvtColorCOLOR_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;
}

关于c++ - 访问违规读取位置 OpenCV Canny 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571274/

相关文章:

c++ - 解决循环 C++ 模板依赖

c++ - 在 Eclipse 下为 C++ 项目运行 make

c++ - 一个数组,其中每个元素都是一个数的约数和下一个数的约数

c++ - Winsock 应用程序中的线性航位推算

c++ - opencv\modules\core\src\persistence.cpp :2697: error: (-27) NULL or empty buffer in function cvOpenFileStorage

python - 使用opencv提取图像的轮廓作为连续路径

python - 求叶子的周长

c++ - 代码背后的逻辑

image-processing - 检测白色的最佳方法是什么?

android - 精明边缘检测器后的opencv洪水填充