0
我對OpenCV(C++)非常陌生,我的講師要求我製作一個簡單的滑塊,使滑塊中的每個位置在窗口中都有不同的位置。我的下面的代碼可以基於滑塊位置移動窗口中的對象,但是當我移動滑塊時舊的位置仍然存在。所以它看起來像一個重複的不動。任何人都可以幫助我解決這個問題?有沒有辦法解決這個問題,或者我必須完全改變代碼?使用滑塊移動對象openCV C++
#include "stdafx.h"
#include "cv.h"
#include "ml.h"
#include "cxcore.h"
#include "highgui.h"
int g_switch_value = 0;
int colorInt = 0;
void switch_callback(int position){
if(position == 0){
colorInt = 0;
}else{
colorInt = 1;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
const char* name = "Change the color of circle in the picture";
int radius = 30;
int thickness = 12;
int connectivity = 8;
cvscalar red = cv_RGB(0,0,255);
IplImage* src1 = cvLoadImage("E:/2.jpg");
CvPoint pt1 = cvPoint(405,195);
CvPoint pt2 = cvPoint(620,400);
cvNamedWindow(name, 1);
cvShowImage(name, src1);
cvCreateTrackbar("Change", name, &g_switch_value, 1, switch_callback);
while(1) {
if(colorInt == 0) {
cvCircle(src1,pt1,radius,red,thickness,connectivity);}
else {
cvCircle(src1,pt2,radius,red,thickness,connectivity); }
colorInt == 1;
cvShowImage(name, src1);
if(cvWaitKey(15) == 27) break;
}
cvReleaseImage(&src1);
cvDestroyWindow(name);
return 0; }
當您移動的TrackBar它創建在正確位置的新圈子,而且還使舊的你是什麼意思?是否可能是您每次移動軌跡條時都要創建一個新的圓形,但是您還需要通過更改其顏色來刪除舊的圓形?我不確定 – anana