C++ Visual Studio C+;中的opencv没有输出+;

C++ Visual Studio C+;中的opencv没有输出+;,c++,opencv,visual-c++,visual-studio-2017,opencv3.0,C++,Opencv,Visual C++,Visual Studio 2017,Opencv3.0,我是OpenCV的新手。此代码在my Visual Studio 2017上运行,但即使在输入命令行参数后也不会显示任何结果。该程序运行良好,成功生成,没有错误或生成失败通知。我试了好几次,但这个问题一直没有解决办法。有人能帮忙吗 #include "opencv2/imgproc.hpp" #include "opencv2/imgcodecs.hpp" #include "opencv2/highgui.hpp" #include <iostream>

我是OpenCV的新手。此代码在my Visual Studio 2017上运行,但即使在输入命令行参数后也不会显示任何结果。该程序运行良好,成功生成,没有错误或生成失败通知。我试了好几次,但这个问题一直没有解决办法。有人能帮忙吗

 #include "opencv2/imgproc.hpp"
    #include "opencv2/imgcodecs.hpp"
    #include "opencv2/highgui.hpp"
    #include <iostream>

    using namespace std;
    using namespace cv;

    Mat src, erosion_dst, dilation_dst;
    int erosion_elem = 0;
    int erosion_size = 0;
    int dilation_elem = 0;
    int dilation_size = 0;
    int const max_elem = 2;
    int const max_kernel_size = 21;
    void Erosion(int, void*);
    void Dilation(int, void*);
    int main(int, char** argv)
    {
        src = imread(argv[1], IMREAD_COLOR);
        if (src.empty())
        {
            return -1;
        }
        namedWindow("Erosion Demo", WINDOW_AUTOSIZE);
        namedWindow("Dilation Demo", WINDOW_AUTOSIZE);
        moveWindow("Dilation Demo", src.cols, 0);
        createTrackbar("Element:\n 0: Rect \n 1: Cross \n 2: Ellipse", "Erosion Demo",
            &erosion_elem, max_elem,
            Erosion);
        createTrackbar("Kernel size:\n 2n +1", "Erosion Demo",
            &erosion_size, max_kernel_size,
            Erosion);
        createTrackbar("Element:\n 0: Rect \n 1: Cross \n 2: Ellipse", "Dilation Demo",
            &dilation_elem, max_elem,
            Dilation);
        createTrackbar("Kernel size:\n 2n +1", "Dilation Demo",
            &dilation_size, max_kernel_size,
            Dilation);
        Erosion(0, 0);
        Dilation(0, 0);
        waitKey(0);
        return 0;
    }
    void Erosion(int, void*)
    {
        int erosion_type = 0;
        if (erosion_elem == 0) { erosion_type = MORPH_RECT; }
        else if (erosion_elem == 1) { erosion_type = MORPH_CROSS; }
        else if (erosion_elem == 2) { erosion_type = MORPH_ELLIPSE; }
        Mat element = getStructuringElement(erosion_type,
            Size(2 * erosion_size + 1, 2 * erosion_size + 1),
            Point(erosion_size, erosion_size));
        erode(src, erosion_dst, element);
        imshow("Erosion Demo", erosion_dst);
    }
    void Dilation(int, void*)
    {
        int dilation_type = 0;
        if (dilation_elem == 0) { dilation_type = MORPH_RECT; }
        else if (dilation_elem == 1) { dilation_type = MORPH_CROSS; }
        else if (dilation_elem == 2) { dilation_type = MORPH_ELLIPSE; }
        Mat element = getStructuringElement(dilation_type,
            Size(2 * dilation_size + 1, 2 * dilation_size + 1),
            Point(dilation_size, dilation_size));
        dilate(src, dilation_dst, element);
        imshow("Dilation Demo", dilation_dst);
    }
#包括“opencv2/imgproc.hpp”
#包括“opencv2/imgcodecs.hpp”
#包括“opencv2/highgui.hpp”
#包括
使用名称空间std;
使用名称空间cv;
材料src、侵蚀试验、膨胀试验;
int_elem=0;
int\u size=0;
整数膨胀系数=0;
int膨胀_大小=0;
int const max_elem=2;
int const max_kernel_size=21;
空洞侵蚀(int,void*);
空洞扩张(int,void*);
int main(int,字符**argv)
{
src=imread(argv[1],imread\u颜色);
if(src.empty())
{
返回-1;
}
namedWindow(“侵蚀演示”,窗口自动调整);
namedWindow(“膨胀演示”,窗口自动调整);
moveWindow(“膨胀演示”,src.cols,0);
createTrackbar(“元素:\n 0:Rect\n 1:Cross\n 2:Ellipse”,“腐蚀演示”,
&侵蚀元素,最大元素,
侵蚀);
createTrackbar(“内核大小:\n 2n+1”,“侵蚀演示”,
&侵蚀大小,最大内核大小,
侵蚀);
createTrackbar(“元素:\n 0:Rect\n 1:Cross\n 2:Ellipse”,“膨胀演示”,
&扩张元素,最大元素,
扩张);
createTrackbar(“内核大小:\n 2n+1”,“扩展演示”,
&膨胀大小,最大内核大小,
扩张);
侵蚀(0,0);
扩张(0,0);
等待键(0);
返回0;
}
空洞侵蚀(整型,空洞*)
{
int_type=0;
如果(侵蚀元素==0){侵蚀类型=morp\u RECT;}
else如果(侵蚀元素==1){侵蚀类型=变形交叉;}
else如果(侵蚀元素==2){侵蚀类型=变形椭圆;}
Mat元素=getStructuringElement(侵蚀类型,
尺寸(2*腐蚀尺寸+1,2*腐蚀尺寸+1),
点(侵蚀大小、侵蚀大小);
侵蚀(src、侵蚀度、构件);
imshow(“侵蚀演示”,侵蚀测试);
}
空洞扩张(int,void*)
{
int膨胀类型=0;
如果(dillation_elem==0){dillation_type=morp_RECT;}
else如果(扩张元素==1){扩张类型=变形交叉;}
else如果(扩张元素==2){Dillation类型=变形椭圆;}
Mat元素=getStructuringElement(膨胀类型,
大小(2*扩容大小+1,2*扩容大小+1),
点(扩张大小,扩张大小);
扩张(src、扩张度、元素);
imshow(“膨胀演示”,膨胀测试);
}

谢谢大家!

您可能对参数有问题

尝试替换
src=imread(argv[1],imread\u颜色)带有

src = imread("myPathTo/lena.jpg", IMREAD_COLOR);
我试过和莉娜在一起,我觉得很好:


您的参数可能有问题

尝试替换
src=imread(argv[1],imread\u颜色)带有

src = imread("myPathTo/lena.jpg", IMREAD_COLOR);
我试过和莉娜在一起,我觉得很好:


我猜你把文件放错地方了。前
返回-1你应该打印一条错误消息。我猜你把文件放错地方了。前
返回-1您应该打印一条错误消息。非常感谢您的帮助。这对我很管用。您知道命令行参数不起作用的原因吗?C:/Users/God's Property/Desktop/lena.jpgDid你引用了吗?路径中的空格将把它转换为两个命令行参数。非常感谢您的帮助。这对我很管用。请你知道为什么src=imread(“C:/Users/God's Property/Desktop/lena.jpg”,imread\u COLOR);可以工作,但C:\Users\God's Property\Desktop\lena.jpg不能工作?@drescherjm我没有在命令行中引用这句话。我是这样输入的@ΦXocę웃 Пepeúpaツ 现在我知道了。非常感谢你的帮助非常感谢你的帮助。这对我很管用。您知道命令行参数不起作用的原因吗?C:/Users/God's Property/Desktop/lena.jpgDid你引用了吗?路径中的空格将把它转换为两个命令行参数。非常感谢您的帮助。这对我很管用。请你知道为什么src=imread(“C:/Users/God's Property/Desktop/lena.jpg”,imread\u COLOR);可以工作,但C:\Users\God's Property\Desktop\lena.jpg不能工作?@drescherjm我没有在命令行中引用这句话。我是这样输入的@ΦXocę웃 Пepeúpaツ 现在我知道了。非常感谢你的帮助