2011-04-28 89 views

回答

12

我不知道任何内置的进度条类,但你也许可以模拟一个或通过在彼此顶部绘制两个矩形自己编写。一个代表整个范围,另一个代表进展。

So something like that ...

0

如果你确实需要一个用户友好的图形界面,你为什么不使用Qt。它可以很容易地与opencv集成,并有很多工具来定制和创建GUI。看看Qt提供的官方链接来整合opencv。 http://qt-project.org/wiki/OpenCV_with_Qt

0

如果你只想使用OpenCV的,我用的是繁殖0和1之间的数字在一个窗口中打开图像。如果您正在使用 新的C++ opencv的:即

Mat A=...some image that show for example the text "DONE" or your dog or cat :P 
double alpha=0; 
int N=100;//steps 
for(int i=1;1<N;i++) 
{ 
// some process... 
alpha=i/N; 
A=A*alpha;// and alpha is a scalar 
// if you are using the old C Opencv use cvConvertScale 
//then show A 
imshow("Progress Image...",A) 
waitKey(666); 
} 

的影响在我看来是非常好的,不是一个简单的进度条更好。你只需要opencv库,如果图像小的话对CPU很轻。

但是,如果你想看到一个“酒吧”最简单的方法就是用线功能:

C++: void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0) 

PT1是在图像的一个角落里的一个点,PT2是在它们的X点或Y轴中的其他代码改变,例如:

axis=(int)(image.size().width*(i/N)); 
+0

此外,您可以使用线功能,即: – 2015-06-03 15:35:25

0

您可以使用WINAPI进度,但这并不是好主意。

首先要WINAPI窗口,例如:

HWND hwnd = CreateWindowEx(0, "STATIC", "#img", WS_CHILD | WS_VISIBLE, 
      0, 40, 800, 500, hwnd, NULL, hInstance, NULL); 

而这个窗口上的进度条:

HWND hProgressBar = CreateWindowEx(0, PROGRESS_CLASS, NULL, WS_CHILD | WS_VISIBLE, 
10, 10, 200, 15, hwnd,(HMENU) 200, hInstance, NULL); 

如果您有现成的工作WINAPI应用程序和窗口,你可以做的OpenCV窗口:

namedWindow("openCV", 1); 
SetParent((HWND)cvGetWindowHandle("openCV"), hwnd); 

并隐藏openCV窗口:

HWND win_handle = FindWindow(0, "openCV"); 
     if (!win_handle) 
     { 
      printf("Failed FindWindow\n"); 
     } 
     else 
     { 
      ShowWindow(win_handle, SW_HIDE); 
     } 

现在,您已经对图像的顶部工作进度。