gpt4 book ai didi

opencv - cvSobel问题-opencv

转载 作者:行者123 更新时间:2023-12-02 17:53:02 26 4
gpt4 key购买 nike

我有下面的代码:

 // Image Processing.cpp : Defines the entry point for the console application.
//
//Save an available image.
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
/*
The purpose of this program is to show an example of THRESHOLDING.
*/

int _tmain(int argc, _TCHAR* argv[])
{
IplImage* src = cvLoadImage("D:\\document\\Study\\university of technology\\semester_8\\Computer Vision\\Pics for test\\black-white 4.jpg");
IplImage* dst = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,3);
IplImage* temp1 = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
IplImage* temp2 = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
cvCvtColor(src,temp1,CV_RGB2GRAY);
cvSobel(temp1,temp2,0,1,3);
cvMerge(temp2,temp2,temp2,NULL,dst);
cvNamedWindow("src",1);
cvNamedWindow("dst",1);

cvShowImage("src",src);
cvShowImage("dst",temp2);

cvWaitKey(0);

cvReleaseImage(&src);
//cvReleaseImage(&dst);
cvDestroyAllWindows();
return 0;
}

当我运行它时,有一个警告,如下图所示:


但是,如果我仍然单击“计数”按钮,则会显示结果!

希望有人能给我一个解释!

最佳答案

结果是正确的。程序的描述不是。 xorder = 0和yorder = 1表示您正在检测y方向的一阶导数。图像中的白色像素对应于可以通过垂直导数检测到的边界,即尽可能接近水平边界。这就是为什么几乎没有检测到垂直线的原因。

CvSobel本身与阈值无关。 CvSobel是用于查找边界和轮廓的功能。阈值化是最常见的一种操作,可从灰度图像创建黑白图像。这也称为图像二值化。

如果要对图像进行阈值处理,请从cvThreshold和cvAdaptiveThreshold开始。

关于opencv - cvSobel问题-opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15416320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com