2011-04-28 55 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); 
     } 

現在,您已經對圖像的頂部工作進度。