新人求助,关于滑动条创建了却不显示的问题
opencv吧
全部回复
仅看楼主
level 2
IIVUNE 楼主
在看opencv3编程入门,看了课本上霍夫变换的一个程序,自己仿照着写了一下,但是滑动条却不显示。请问大神这是怎么回事?
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int g_nthresholdValue = 50;
Mat g_srcImage , g_midImage , g_dstImage;
vector<Vec4i> g_lines;
static void on_threshold(int , void*);
int main()
{
g_srcImage = imread("1.jpg");
if(!g_srcImage.data) {printf("打开文件失败!/n");}
namedWindow("原图" , 1);
imshow("原图" , g_srcImage);
namedWindow("效果图" , 1);
createTrackbar("参数值" , "效果图 " , &g_nthresholdValue , 200 , on_threshold);
Canny(g_srcImage , g_midImage , 50 , 200 , 3);
cvtColor(g_midImage , g_dstImage , COLOR_GRAY2BGR);
on_threshold(g_nthresholdValue , 0);
HoughLinesP(g_midImage , g_lines , 1 , CV_PI/180 , 80 , 50 , 10);
imshow("效果图" , g_dstImage);
waitKey(0);
return 0;
}
static void on_threshold(int , void*)
{
Mat midImage = g_midImage.clone();
Mat dstImage = g_dstImage.clone();
vector<Vec4i> myline;
HoughLinesP(midImage , myline , 1 , CV_PI/180 , (g_nthresholdValue+1) , 50 , 10);
for(size_t i = 0 ; i < myline.size() ; i++)
{
line(dstImage , Point(myline[i][0] , myline[i][1]) , Point(myline[i][2] , myline[i][3]) , Scalar(255 , 0 , 0) , 1 , CV_AA);
}
imshow("效果图" , dstImage);
}
2017年11月07日 23点11分 1
level 2
IIVUNE 楼主
1
2017年11月10日 00点11分 2
1