mirror of
https://github.com/opencv/opencv.git
synced 2025-06-07 17:44:04 +08:00
adding waitChar key to remove issues with waitKey char comparisons
done for cpp/markdown/python filters on search function also added wrapped functionality for Python then checked all python samples, removed ord() and 0xFF anding - no longer needed -
This commit is contained in:
parent
01d2e7af71
commit
a5f19f7dd6
@ -1270,7 +1270,7 @@ void cvCreateTrainingSamples( const char* filename,
|
||||
if( showsamples )
|
||||
{
|
||||
cvShowImage( "Sample", &sample );
|
||||
if( cvWaitKey( 0 ) == 27 )
|
||||
if( (cvWaitKey( 0 ) & 0xFF) == 27 )
|
||||
{
|
||||
showsamples = 0;
|
||||
}
|
||||
@ -1402,7 +1402,7 @@ void cvCreateTestSamples( const char* infoname,
|
||||
if( showsamples )
|
||||
{
|
||||
cvShowImage( "Image", &cvbgreader->src );
|
||||
if( cvWaitKey( 0 ) == 27 )
|
||||
if( (cvWaitKey( 0 ) & 0xFF) == 27 )
|
||||
{
|
||||
showsamples = 0;
|
||||
}
|
||||
@ -1525,7 +1525,7 @@ int cvCreateTrainingSamplesFromInfo( const char* infoname, const char* vecfilena
|
||||
if( showsamples )
|
||||
{
|
||||
cvShowImage( "Sample", sample );
|
||||
if( cvWaitKey( 0 ) == 27 )
|
||||
if( (cvWaitKey( 0 ) & 0xFF) == 27 )
|
||||
{
|
||||
showsamples = 0;
|
||||
}
|
||||
@ -1672,7 +1672,7 @@ void cvShowVecSamples( const char* filename, int winwidth, int winheight,
|
||||
icvGetTraininDataFromVec( sample, &file );
|
||||
if( scale != 1.0 ) cvResize( sample, scaled_sample, CV_INTER_LINEAR);
|
||||
cvShowImage( "Sample", scaled_sample );
|
||||
if( cvWaitKey( 0 ) == 27 ) break;
|
||||
if( (cvWaitKey( 0 ) & 0xFF) == 27 ) break;
|
||||
}
|
||||
if( scaled_sample && scaled_sample != sample ) cvReleaseMat( &scaled_sample );
|
||||
cvReleaseMat( &sample );
|
||||
|
@ -62,7 +62,7 @@ PipelineExitStatus CalibPipeline::start(std::vector<cv::Ptr<FrameProcessor> > pr
|
||||
for (std::vector<cv::Ptr<FrameProcessor> >::iterator it = processors.begin(); it != processors.end(); ++it)
|
||||
processedFrame = (*it)->processFrame(processedFrame);
|
||||
cv::imshow(mainWindowName, processedFrame);
|
||||
int key = cv::waitKey(CAP_DELAY);
|
||||
char key = cv::waitChar(CAP_DELAY);
|
||||
|
||||
if(key == 27) // esc
|
||||
return Finished;
|
||||
|
@ -85,9 +85,9 @@ Explanation
|
||||
while( true )
|
||||
{
|
||||
/// Each 1 sec. Press ESC to exit the program
|
||||
int c = waitKey( 1000 );
|
||||
char c = waitChar( 1000 );
|
||||
|
||||
if( (char)c == 27 )
|
||||
if( c == 27 )
|
||||
{ break; }
|
||||
|
||||
/// Update map_x & map_y. Then apply remap
|
||||
|
@ -93,6 +93,7 @@ Let's check the general structure of the program:
|
||||
|
||||
- Perform an infinite loop waiting for user input.
|
||||
@snippet cpp/tutorial_code/ImgProc/Pyramids.cpp infinite_loop
|
||||
|
||||
Our program exits if the user presses *ESC*. Besides, it has two options:
|
||||
|
||||
- **Perform upsampling (after pressing 'u')**
|
||||
|
@ -109,7 +109,7 @@ It provides easy interface to:
|
||||
|
||||
Mat img2,img3;
|
||||
|
||||
while( waitKey(33) != 27 )
|
||||
while( waitChar(33) != 27 )
|
||||
{
|
||||
img1.convertTo(img2,-1,1,value);
|
||||
video >> img3;
|
||||
@ -338,6 +338,26 @@ If there are several HighGUI windows, any of them can be active.
|
||||
*/
|
||||
CV_EXPORTS_W int waitKey(int delay = 0);
|
||||
|
||||
/** @brief Waits for a pressed key and returns the corresponding char value (ASCII) assigned.
|
||||
|
||||
The function waitChar waits for a key event infinitely (when \f$\texttt{delay}\leq 0\f$ ) or for delay
|
||||
milliseconds, when it is positive. It returns the ASCII code of the pressed key as a char value. If no key was pressed before
|
||||
the specified time has elapsed, -1 (most systems) or 255 (if char == unsigned char) is returned depending on the system available.
|
||||
|
||||
@note
|
||||
|
||||
There is a minor issue for `char == unsigned char systems`. Return value or timeout could be mixed up with value of valid `'\0xFF'` symbol.
|
||||
However this is an extremely rare usecase, and is thus ignored for the moment.
|
||||
|
||||
@note
|
||||
|
||||
The function only works if there is at least one HighGUI window created and the window is active.
|
||||
If there are several HighGUI windows, any of them can be active.
|
||||
|
||||
@param delay Delay in milliseconds. 0 is the special value that means "forever".
|
||||
*/
|
||||
CV_EXPORTS_W char waitChar(int delay = 0);
|
||||
|
||||
/** @brief Displays an image in the specified window.
|
||||
|
||||
The function imshow displays an image in the specified window. If the window was created with the
|
||||
|
@ -198,6 +198,15 @@ int cv::waitKey(int delay)
|
||||
return cvWaitKey(delay);
|
||||
}
|
||||
|
||||
char cv::waitChar(int delay){
|
||||
#if CHAR_MIN==SCHAR_MIN
|
||||
int intKey = cv::waitKey(delay) & 0xFF;
|
||||
return (char)(intKey & 0x80 ? intKey - 0x100 : intKey);
|
||||
#else
|
||||
return (char)(cv::waitKey(delay) & 0xff);
|
||||
#endif
|
||||
}
|
||||
|
||||
int cv::createTrackbar(const String& trackbarName, const String& winName,
|
||||
int* value, int count, TrackbarCallback callback,
|
||||
void* userdata)
|
||||
|
@ -542,6 +542,12 @@ bool pyopencv_to(PyObject* obj, double& value, const char* name)
|
||||
return !PyErr_Occurred();
|
||||
}
|
||||
|
||||
template<>
|
||||
PyObject* pyopencv_from(const char& value)
|
||||
{
|
||||
return PyInt_FromLong(value);
|
||||
}
|
||||
|
||||
template<>
|
||||
PyObject* pyopencv_from(const float& value)
|
||||
{
|
||||
|
@ -113,7 +113,7 @@ if __name__ == '__main__':
|
||||
img = render.getNextFrame()
|
||||
cv2.imshow('img', img)
|
||||
|
||||
ch = 0xFF & cv2.waitKey(3)
|
||||
ch = cv2.waitChar(3)
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
@ -351,7 +351,7 @@ int main( int argc, char** argv )
|
||||
for( k = 0; k < small_canvas.rows; k += 16 )
|
||||
line(small_canvas, Point(0, k), Point(small_canvas.cols, k), Scalar(0,255,0), 1);
|
||||
imshow("rectified", small_canvas);
|
||||
int c = waitKey(0);
|
||||
char c = waitChar(0);
|
||||
if( c == 27 || c == 'q' || c == 'Q' )
|
||||
break;
|
||||
}
|
||||
|
@ -400,7 +400,7 @@ int main(int argc, char ** argv)
|
||||
}
|
||||
|
||||
imshow(windowOriginal, frame);
|
||||
switch (key = static_cast<char>(waitKey(30)))
|
||||
switch (key = waitChar(30))
|
||||
{
|
||||
case 'k': // focus out
|
||||
cap.set(CAP_PROP_ZOOM, 100);
|
||||
|
@ -95,7 +95,7 @@ int main(int argc, const char** argv)
|
||||
if(!bgimg.empty())
|
||||
imshow("mean background image", bgimg );
|
||||
|
||||
char k = (char)waitKey(30);
|
||||
char k = waitChar(30);
|
||||
if( k == 27 ) break;
|
||||
if( k == ' ' )
|
||||
{
|
||||
|
@ -493,9 +493,9 @@ int main( int argc, char** argv )
|
||||
}
|
||||
|
||||
imshow("Image View", view);
|
||||
int key = 0xff & waitKey(capture.isOpened() ? 50 : 500);
|
||||
char key = waitChar(capture.isOpened() ? 50 : 500);
|
||||
|
||||
if( (key & 255) == 27 )
|
||||
if( key == 27 )
|
||||
break;
|
||||
|
||||
if( key == 'u' && mode == CALIBRATED )
|
||||
@ -536,8 +536,8 @@ int main( int argc, char** argv )
|
||||
//undistort( view, rview, cameraMatrix, distCoeffs, cameraMatrix );
|
||||
remap(view, rview, map1, map2, INTER_LINEAR);
|
||||
imshow("Image View", rview);
|
||||
int c = 0xff & waitKey();
|
||||
if( (c & 255) == 27 || c == 'q' || c == 'Q' )
|
||||
char c = waitChar();
|
||||
if( c == 27 || c == 'q' || c == 'Q' )
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -188,7 +188,7 @@ int main( int argc, const char** argv )
|
||||
imshow( "CamShift Demo", image );
|
||||
imshow( "Histogram", histimg );
|
||||
|
||||
char c = (char)waitKey(10);
|
||||
char c = waitChar(10);
|
||||
if( c == 27 )
|
||||
break;
|
||||
switch(c)
|
||||
|
@ -453,7 +453,7 @@ int main()
|
||||
|
||||
for(;;)
|
||||
{
|
||||
char key = (char) waitKey(0);
|
||||
char key = waitChar(0);
|
||||
|
||||
if(key == 'd' && flag3 == 0)
|
||||
{
|
||||
|
@ -25,7 +25,6 @@ int main( int argc, char** argv )
|
||||
|
||||
for(;;)
|
||||
{
|
||||
char key;
|
||||
int i, count = (unsigned)rng%100 + 1;
|
||||
|
||||
vector<Point> points;
|
||||
@ -58,7 +57,7 @@ int main( int argc, char** argv )
|
||||
|
||||
imshow("hull", img);
|
||||
|
||||
key = (char)waitKey();
|
||||
char key = waitChar();
|
||||
if( key == 27 || key == 'q' || key == 'Q' ) // 'ESC'
|
||||
break;
|
||||
}
|
||||
|
@ -277,8 +277,8 @@ static void DrawOpenGLMSER(Mat img, Mat result)
|
||||
for (;;)
|
||||
{
|
||||
updateWindow("OpenGL");
|
||||
int key = waitKey(40);
|
||||
if ((key & 0xff) == 27)
|
||||
char key = waitChar(40);
|
||||
if (key == 27)
|
||||
break;
|
||||
if (key == 0x20)
|
||||
rotateEnable = !rotateEnable;
|
||||
|
@ -133,7 +133,7 @@ int main( int argc, const char** argv )
|
||||
// Call to update the view
|
||||
onTrackbar(0, 0);
|
||||
|
||||
int c = waitKey(0) & 255;
|
||||
char c = waitChar(0);
|
||||
|
||||
if( c == 27 )
|
||||
break;
|
||||
|
@ -72,9 +72,9 @@ int main( int argc, const char** argv )
|
||||
}
|
||||
if( inputName.empty() || (isdigit(inputName[0]) && inputName.size() == 1) )
|
||||
{
|
||||
int c = inputName.empty() ? 0 : inputName[0] - '0';
|
||||
if(!capture.open(c))
|
||||
cout << "Capture from camera #" << c << " didn't work" << endl;
|
||||
int camera = inputName.empty() ? 0 : inputName[0] - '0';
|
||||
if(!capture.open(camera))
|
||||
cout << "Capture from camera #" << camera << " didn't work" << endl;
|
||||
}
|
||||
else if( inputName.size() )
|
||||
{
|
||||
@ -104,7 +104,7 @@ int main( int argc, const char** argv )
|
||||
Mat frame1 = frame.clone();
|
||||
detectAndDraw( frame1, cascade, nestedCascade, scale, tryflip );
|
||||
|
||||
int c = waitKey(10);
|
||||
char c = waitChar(10);
|
||||
if( c == 27 || c == 'q' || c == 'Q' )
|
||||
break;
|
||||
}
|
||||
@ -127,7 +127,7 @@ int main( int argc, const char** argv )
|
||||
char buf[1000+1];
|
||||
while( fgets( buf, 1000, f ) )
|
||||
{
|
||||
int len = (int)strlen(buf), c;
|
||||
int len = (int)strlen(buf);
|
||||
while( len > 0 && isspace(buf[len-1]) )
|
||||
len--;
|
||||
buf[len] = '\0';
|
||||
@ -136,7 +136,7 @@ int main( int argc, const char** argv )
|
||||
if( !image.empty() )
|
||||
{
|
||||
detectAndDraw( image, cascade, nestedCascade, scale, tryflip );
|
||||
c = waitKey(0);
|
||||
char c = waitChar(0);
|
||||
if( c == 27 || c == 'q' || c == 'Q' )
|
||||
break;
|
||||
}
|
||||
|
@ -105,13 +105,13 @@ int main( int argc, char** argv )
|
||||
{
|
||||
imshow("image", isColor ? image : gray);
|
||||
|
||||
int c = waitKey(0);
|
||||
if( (c & 255) == 27 )
|
||||
char c = waitChar(0);
|
||||
if( c == 27 )
|
||||
{
|
||||
cout << "Exiting ...\n";
|
||||
break;
|
||||
}
|
||||
switch( (char)c )
|
||||
switch( c )
|
||||
{
|
||||
case 'c':
|
||||
if( isColor )
|
||||
|
@ -306,8 +306,8 @@ int main( int argc, char** argv )
|
||||
|
||||
for(;;)
|
||||
{
|
||||
int c = waitKey(0);
|
||||
switch( (char) c )
|
||||
char c = waitChar(0);
|
||||
switch( c )
|
||||
{
|
||||
case '\x1b':
|
||||
cout << "Exiting ..." << endl;
|
||||
|
@ -57,7 +57,7 @@ int main(int argc, char** argv)
|
||||
|
||||
imshow("Image sequence | press ESC to close", image);
|
||||
|
||||
if(waitKey(500) == 27)
|
||||
if( waitChar(500) == 27)
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ int main( int argc, char** argv )
|
||||
|
||||
for(;;)
|
||||
{
|
||||
char c = (char)waitKey();
|
||||
char c = waitChar();
|
||||
|
||||
if( c == 27 )
|
||||
break;
|
||||
|
@ -35,7 +35,7 @@ int main(int, char**)
|
||||
Mat state(2, 1, CV_32F); /* (phi, delta_phi) */
|
||||
Mat processNoise(2, 1, CV_32F);
|
||||
Mat measurement = Mat::zeros(1, 1, CV_32F);
|
||||
char code = (char)-1;
|
||||
char code = 0;
|
||||
|
||||
for(;;)
|
||||
{
|
||||
@ -89,7 +89,7 @@ int main(int, char**)
|
||||
state = KF.transitionMatrix*state + processNoise;
|
||||
|
||||
imshow( "Kalman", img );
|
||||
code = (char)waitKey(100);
|
||||
code = waitChar(100);
|
||||
|
||||
if( code > 0 )
|
||||
break;
|
||||
|
@ -68,7 +68,7 @@ int main( int /*argc*/, char** /*argv*/ )
|
||||
|
||||
imshow("clusters", img);
|
||||
|
||||
char key = (char)waitKey();
|
||||
char key = waitChar();
|
||||
if( key == 27 || key == 'q' || key == 'Q' ) // 'ESC'
|
||||
break;
|
||||
}
|
||||
|
@ -83,10 +83,10 @@ int main( int argc, char** argv )
|
||||
convertScaleAbs(laplace, result, (sigma+1)*0.25);
|
||||
imshow("Laplacian", result);
|
||||
|
||||
int c = waitKey(30);
|
||||
char c = waitChar(30);
|
||||
if( c == ' ' )
|
||||
smoothType = smoothType == GAUSSIAN ? BLUR : smoothType == BLUR ? MEDIAN : GAUSSIAN;
|
||||
if( c == 'q' || c == 'Q' || (c & 255) == 27 )
|
||||
if( c == 'q' || c == 'Q' || c == 27 )
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -131,7 +131,7 @@ int main( int argc, char** argv )
|
||||
needToInit = false;
|
||||
imshow("LK Demo", image);
|
||||
|
||||
char c = (char)waitKey(10);
|
||||
char c = waitChar(10);
|
||||
if( c == 27 )
|
||||
break;
|
||||
switch( c )
|
||||
|
@ -72,7 +72,7 @@ int main( int /*argc*/, char** /*argv*/ )
|
||||
|
||||
imshow( "Rectangle, triangle & circle", img );
|
||||
|
||||
char key = (char)waitKey();
|
||||
char key = waitChar();
|
||||
if( key == 27 || key == 'q' || key == 'Q' ) // 'ESC'
|
||||
break;
|
||||
}
|
||||
|
@ -82,21 +82,19 @@ int main( int argc, char** argv )
|
||||
|
||||
for(;;)
|
||||
{
|
||||
int c;
|
||||
|
||||
OpenClose(open_close_pos, 0);
|
||||
ErodeDilate(erode_dilate_pos, 0);
|
||||
c = waitKey(0);
|
||||
char c = waitChar(0);
|
||||
|
||||
if( (char)c == 27 )
|
||||
if( c == 27 )
|
||||
break;
|
||||
if( (char)c == 'e' )
|
||||
if( c == 'e' )
|
||||
element_shape = MORPH_ELLIPSE;
|
||||
else if( (char)c == 'r' )
|
||||
else if( c == 'r' )
|
||||
element_shape = MORPH_RECT;
|
||||
else if( (char)c == 'c' )
|
||||
else if( c == 'c' )
|
||||
element_shape = MORPH_CROSS;
|
||||
else if( (char)c == ' ' )
|
||||
else if( c == ' ' )
|
||||
element_shape = (element_shape + 1) % 3;
|
||||
}
|
||||
|
||||
|
@ -183,9 +183,9 @@ int main(int argc, char** argv)
|
||||
// display until user presses q
|
||||
imshow(winName, reconstruction);
|
||||
|
||||
int key = 0;
|
||||
char key = 0;
|
||||
while(key != 'q')
|
||||
key = waitKey();
|
||||
key = waitChar();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ int main(int, char* [])
|
||||
{
|
||||
VideoCapture video(0);
|
||||
Mat frame, curr, prev, curr64f, prev64f, hann;
|
||||
int key = 0;
|
||||
char key;
|
||||
|
||||
do
|
||||
{
|
||||
@ -37,10 +37,10 @@ int main(int, char* [])
|
||||
}
|
||||
|
||||
imshow("phase shift", frame);
|
||||
key = waitKey(2);
|
||||
key = waitChar(2);
|
||||
|
||||
prev = curr.clone();
|
||||
} while((char)key != 27); // Esc to exit...
|
||||
} while(key != 27); // Esc to exit...
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -312,7 +312,7 @@ int main()
|
||||
|
||||
for(;;)
|
||||
{
|
||||
uchar key = (uchar)waitKey();
|
||||
char key = waitChar();
|
||||
|
||||
if( key == 27 ) break;
|
||||
|
||||
|
@ -105,7 +105,7 @@ int main(int argc, char** argv)
|
||||
refineSegments(tmp_frame, bgmask, out_frame);
|
||||
imshow("video", tmp_frame);
|
||||
imshow("segmented", out_frame);
|
||||
int keycode = waitKey(30);
|
||||
char keycode = waitChar(30);
|
||||
if( keycode == 27 )
|
||||
break;
|
||||
if( keycode == ' ' )
|
||||
|
@ -285,8 +285,8 @@ static int select3DBox(const string& windowname, const string& selWinName, const
|
||||
imshow(windowname, shownFrame);
|
||||
imshow(selWinName, selectedObjFrame);
|
||||
|
||||
int c = waitKey(30);
|
||||
if( (c & 255) == 27 )
|
||||
char c = waitChar(30);
|
||||
if( c == 27 )
|
||||
{
|
||||
nobjpt = 0;
|
||||
}
|
||||
@ -593,7 +593,7 @@ int main(int argc, char** argv)
|
||||
|
||||
imshow("View", shownFrame);
|
||||
imshow("Selected Object", selectedObjFrame);
|
||||
int c = waitKey(imageList.empty() && !box.empty() ? 30 : 300);
|
||||
char c = waitChar(imageList.empty() && !box.empty() ? 30 : 300);
|
||||
if( c == 'q' || c == 'Q' )
|
||||
break;
|
||||
if( c == '\r' || c == '\n' )
|
||||
|
@ -99,7 +99,7 @@ int main( int argc, const char** argv )
|
||||
Mat frame1 = frame.clone();
|
||||
detectAndDraw( frame1, cascade, nestedCascade, scale, tryflip );
|
||||
|
||||
int c = waitKey(10);
|
||||
char c = waitChar(10);
|
||||
if( c == 27 || c == 'q' || c == 'Q' )
|
||||
break;
|
||||
}
|
||||
|
@ -167,8 +167,8 @@ int main(int argc, char** argv)
|
||||
findSquares(image, squares);
|
||||
drawSquares(image, squares);
|
||||
|
||||
int c = waitKey();
|
||||
if( (char)c == 27 )
|
||||
char c = waitChar();
|
||||
if( c == 27 )
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ namespace {
|
||||
break;
|
||||
|
||||
imshow(window_name, frame);
|
||||
char key = (char)waitKey(30); //delay N millis, usually long enough to display and capture input
|
||||
char key = waitChar(30); //delay N millis, usually long enough to display and capture input
|
||||
|
||||
switch (key) {
|
||||
case 'q':
|
||||
|
@ -122,7 +122,7 @@ StereoCalib(const vector<string>& imagelist, Size boardSize, float squareSize, b
|
||||
double sf = 640./MAX(img.rows, img.cols);
|
||||
resize(cimg, cimg1, Size(), sf, sf);
|
||||
imshow("corners", cimg1);
|
||||
char c = (char)waitKey(500);
|
||||
char c = waitChar(500);
|
||||
if( c == 27 || c == 'q' || c == 'Q' ) //Allow ESC to quit
|
||||
exit(-1);
|
||||
}
|
||||
@ -320,7 +320,7 @@ StereoCalib(const vector<string>& imagelist, Size boardSize, float squareSize, b
|
||||
for( j = 0; j < canvas.cols; j += 16 )
|
||||
line(canvas, Point(j, 0), Point(j, canvas.rows), Scalar(0, 255, 0), 1, 8);
|
||||
imshow("rectified", canvas);
|
||||
char c = (char)waitKey();
|
||||
char c = waitChar();
|
||||
if( c == 27 || c == 'q' || c == 'Q' )
|
||||
break;
|
||||
}
|
||||
|
@ -395,7 +395,7 @@ void test_it( const Size & size )
|
||||
draw_locations( draw, locations, trained );
|
||||
|
||||
imshow( "Video", draw );
|
||||
key = (char)waitKey( 10 );
|
||||
key = waitChar( 10 );
|
||||
if( 27 == key )
|
||||
end_of_process = true;
|
||||
}
|
||||
|
@ -45,26 +45,22 @@ int main( void )
|
||||
//![infinite_loop]
|
||||
for(;;)
|
||||
{
|
||||
int c;
|
||||
c = waitKey(0);
|
||||
char c = waitChar(0);
|
||||
|
||||
if( (char)c == 27 )
|
||||
if( c == 27 )
|
||||
{ break; }
|
||||
if( (char)c == 'u' )
|
||||
{
|
||||
//![pyrup]
|
||||
pyrUp( tmp, dst, Size( tmp.cols*2, tmp.rows*2 ) );
|
||||
//![pyrup]
|
||||
if( c == 'u' )
|
||||
{ pyrUp( tmp, dst, Size( tmp.cols*2, tmp.rows*2 ) );
|
||||
printf( "** Zoom In: Image x 2 \n" );
|
||||
}
|
||||
else if( (char)c == 'd' )
|
||||
{
|
||||
//![pyrdown]
|
||||
pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 ) );
|
||||
//![pyrup]
|
||||
//![pyrdown]
|
||||
else if( c == 'd' )
|
||||
{ pyrDown( tmp, dst, Size( tmp.cols/2, tmp.rows/2 ) );
|
||||
printf( "** Zoom Out: Image / 2 \n" );
|
||||
}
|
||||
|
||||
//![pyrdown]
|
||||
imshow( window_name, dst );
|
||||
|
||||
//![update_tmp]
|
||||
|
@ -95,7 +95,7 @@ int display_caption( const char* caption )
|
||||
FONT_HERSHEY_COMPLEX, 1, Scalar(255, 255, 255) );
|
||||
|
||||
imshow( window_name, dst );
|
||||
int c = waitKey( DELAY_CAPTION );
|
||||
char c = waitChar( DELAY_CAPTION );
|
||||
if( c >= 0 ) { return -1; }
|
||||
return 0;
|
||||
}
|
||||
@ -106,7 +106,7 @@ int display_caption( const char* caption )
|
||||
int display_dst( int delay )
|
||||
{
|
||||
imshow( window_name, dst );
|
||||
int c = waitKey ( delay );
|
||||
char c = waitChar( delay );
|
||||
if( c >= 0 ) { return -1; }
|
||||
return 0;
|
||||
}
|
||||
|
@ -60,9 +60,8 @@ int main( int, char** argv )
|
||||
/// Wait until user finishes program
|
||||
for(;;)
|
||||
{
|
||||
int c;
|
||||
c = waitKey( 20 );
|
||||
if( (char)c == 27 )
|
||||
char c = waitChar( 20 );
|
||||
if( c == 27 )
|
||||
{ break; }
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ int main()
|
||||
createTrackbar("Low B","Object Detection", &low_b, 255, on_low_b_thresh_trackbar);
|
||||
createTrackbar("High B","Object Detection", &high_b, 255, on_high_b_thresh_trackbar);
|
||||
//! [trackbar]
|
||||
while(char(waitKey(1))!='q'){
|
||||
while(waitChar(1)!='q'){
|
||||
//! [while]
|
||||
cap>>frame;
|
||||
if(frame.empty())
|
||||
|
@ -90,7 +90,7 @@ int main(int argc, char** argv)
|
||||
// infinite loop to display
|
||||
// and refresh the content of the output image
|
||||
// until the user presses q or Q
|
||||
int key = 0;
|
||||
char key = 0;
|
||||
while(key != 'q' && key != 'Q')
|
||||
{
|
||||
// those paramaters cannot be =0
|
||||
@ -102,7 +102,7 @@ int main(int argc, char** argv)
|
||||
HoughDetection(src_gray, src, cannyThreshold, accumulatorThreshold);
|
||||
|
||||
// get user key
|
||||
key = waitKey(10);
|
||||
key = waitChar(10);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -40,9 +40,9 @@ int main( int, char** argv )
|
||||
for(;;)
|
||||
{
|
||||
/// Each 1 sec. Press ESC to exit the program
|
||||
int c = waitKey( 1000 );
|
||||
char c = waitChar( 1000 );
|
||||
|
||||
if( (char)c == 27 )
|
||||
if( c == 27 )
|
||||
{ break; }
|
||||
|
||||
/// Update map_x & map_y. Then apply remap
|
||||
|
@ -23,9 +23,6 @@ RNG rng(12345);
|
||||
*/
|
||||
int main( int, char** argv )
|
||||
{
|
||||
|
||||
int c;
|
||||
|
||||
//![load]
|
||||
src = imread( argv[1], IMREAD_COLOR ); // Load an image
|
||||
|
||||
@ -59,13 +56,12 @@ int main( int, char** argv )
|
||||
for(;;)
|
||||
{
|
||||
//![check_keypress]
|
||||
c = waitKey(500);
|
||||
|
||||
if( (char)c == 27 )
|
||||
char c = waitChar(500);
|
||||
if( c == 27 )
|
||||
{ break; }
|
||||
else if( (char)c == 'c' )
|
||||
else if( c == 'c' )
|
||||
{ borderType = BORDER_CONSTANT; }
|
||||
else if( (char)c == 'r' )
|
||||
else if( c == 'r' )
|
||||
{ borderType = BORDER_REPLICATE; }
|
||||
//![check_keypress]
|
||||
|
||||
|
@ -25,8 +25,6 @@ int main ( int, char** argv )
|
||||
int kernel_size;
|
||||
const char* window_name = "filter2D Demo";
|
||||
|
||||
int c;
|
||||
|
||||
//![load]
|
||||
src = imread( argv[1], IMREAD_COLOR ); // Load an image
|
||||
|
||||
@ -45,9 +43,9 @@ int main ( int, char** argv )
|
||||
int ind = 0;
|
||||
for(;;)
|
||||
{
|
||||
c = waitKey(500);
|
||||
char c = waitChar(500);
|
||||
/// Press 'ESC' to exit the program
|
||||
if( (char)c == 27 )
|
||||
if( c == 27 )
|
||||
{ break; }
|
||||
|
||||
//![update_kernel]
|
||||
|
@ -393,7 +393,7 @@ int main(int argc, char* argv[])
|
||||
//------------------------------ Show image and check for input commands -------------------
|
||||
//! [await_input]
|
||||
imshow("Image View", view);
|
||||
char key = (char)waitKey(s.inputCapture.isOpened() ? 50 : s.delay);
|
||||
char key = waitChar(s.inputCapture.isOpened() ? 50 : s.delay);
|
||||
|
||||
if( key == ESC_KEY )
|
||||
break;
|
||||
@ -438,7 +438,7 @@ int main(int argc, char* argv[])
|
||||
continue;
|
||||
remap(view, rview, map1, map2, INTER_LINEAR);
|
||||
imshow("Image View", rview);
|
||||
char c = (char)waitKey();
|
||||
char c = waitChar();
|
||||
if( c == ESC_KEY || c == 'q' || c == 'Q' )
|
||||
break;
|
||||
}
|
||||
|
@ -180,7 +180,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
Mat frame, frame_vis;
|
||||
|
||||
while(cap.read(frame) && waitKey(30) != 27) // capture frame until ESC is pressed
|
||||
while(cap.read(frame) && waitChar(30) != 27) // capture frame until ESC is pressed
|
||||
{
|
||||
|
||||
frame_vis = frame.clone(); // refresh visualisation frame
|
||||
|
@ -195,7 +195,7 @@ int main(int argc, char **argv)
|
||||
drawStatistics(orb_res, orb_draw_stats);
|
||||
vconcat(akaze_res, orb_res, res_frame);
|
||||
cv::imshow(video_name, res_frame);
|
||||
if(cv::waitKey(1)==27) break; //quit on ESC button
|
||||
if(cv::waitChar(1)==27) break; //quit on ESC button
|
||||
}
|
||||
akaze_stats /= i - 1;
|
||||
orb_stats /= i - 1;
|
||||
|
@ -44,8 +44,8 @@ int main( void )
|
||||
//-- 3. Apply the classifier to the frame
|
||||
detectAndDisplay( frame );
|
||||
|
||||
int c = waitKey(10);
|
||||
if( (char)c == 27 ) { break; } // escape
|
||||
char c = waitChar(10);
|
||||
if( c == 27 ) { break; } // escape
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -51,8 +51,8 @@ int main( void )
|
||||
detectAndDisplay( frame );
|
||||
|
||||
//-- bail out if escape was pressed
|
||||
int c = waitKey(10);
|
||||
if( (char)c == 27 ) { break; }
|
||||
char c = waitChar(10);
|
||||
if( c == 27 ) { break; }
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -452,7 +452,7 @@ int main()
|
||||
|
||||
for(;;)
|
||||
{
|
||||
char key = (char) waitKey(0);
|
||||
char key = waitChar(0);
|
||||
|
||||
if(key == 'd' && flag3 == 0)
|
||||
{
|
||||
|
@ -23,7 +23,7 @@ using namespace std;
|
||||
Mat frame; //current frame
|
||||
Mat fgMaskMOG2; //fg mask fg mask generated by MOG2 method
|
||||
Ptr<BackgroundSubtractor> pMOG2; //MOG2 Background subtractor
|
||||
int keyboard; //input from keyboard
|
||||
char keyboard; //input from keyboard
|
||||
|
||||
/** Function Headers */
|
||||
void help();
|
||||
@ -98,7 +98,8 @@ void processVideo(char* videoFilename) {
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
//read input data. ESC or 'q' for quitting
|
||||
while( (char)keyboard != 'q' && (char)keyboard != 27 ){
|
||||
keyboard = 0;
|
||||
while( keyboard != 'q' && keyboard != 27 ){
|
||||
//read the current frame
|
||||
if(!capture.read(frame)) {
|
||||
cerr << "Unable to read next frame." << endl;
|
||||
@ -119,7 +120,7 @@ void processVideo(char* videoFilename) {
|
||||
imshow("Frame", frame);
|
||||
imshow("FG Mask MOG 2", fgMaskMOG2);
|
||||
//get the input from the keyboard
|
||||
keyboard = waitKey( 30 );
|
||||
keyboard = waitChar( 30 );
|
||||
}
|
||||
//delete capture object
|
||||
capture.release();
|
||||
@ -139,7 +140,8 @@ void processImages(char* fistFrameFilename) {
|
||||
//current image filename
|
||||
string fn(fistFrameFilename);
|
||||
//read input data. ESC or 'q' for quitting
|
||||
while( (char)keyboard != 'q' && (char)keyboard != 27 ){
|
||||
keyboard = 0;
|
||||
while( keyboard != 'q' && keyboard != 27 ){
|
||||
//update the background model
|
||||
pMOG2->apply(frame, fgMaskMOG2);
|
||||
//get the frame number and write it on the current frame
|
||||
@ -162,7 +164,7 @@ void processImages(char* fistFrameFilename) {
|
||||
imshow("Frame", frame);
|
||||
imshow("FG Mask MOG 2", fgMaskMOG2);
|
||||
//get the input from the keyboard
|
||||
keyboard = waitKey( 30 );
|
||||
keyboard = waitChar( 30 );
|
||||
//search for the next image in the sequence
|
||||
ostringstream oss;
|
||||
oss << (frameNumber + 1);
|
||||
|
@ -44,7 +44,6 @@ int main(int argc, char *argv[])
|
||||
conv << argv[3] << endl << argv[4]; // put in the strings
|
||||
conv >> psnrTriggerValue >> delay; // take out the numbers
|
||||
|
||||
char c;
|
||||
int frameNum = -1; // Frame counter
|
||||
|
||||
VideoCapture captRefrnc(sourceReference), captUndTst(sourceCompareWith);
|
||||
@ -126,7 +125,7 @@ int main(int argc, char *argv[])
|
||||
imshow(WIN_RF, frameReference);
|
||||
imshow(WIN_UT, frameUnderTest);
|
||||
|
||||
c = (char)waitKey(delay);
|
||||
char c = waitChar(delay);
|
||||
if (c == 27) break;
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ void run()
|
||||
if (!quietMode)
|
||||
{
|
||||
imshow("stabilizedFrame", stabilizedFrame);
|
||||
char key = static_cast<char>(waitKey(3));
|
||||
char key = waitChar(3);
|
||||
if (key == 27) { cout << endl; break; }
|
||||
}
|
||||
}
|
||||
|
@ -74,19 +74,19 @@ int main( int argc, char** argv )
|
||||
|
||||
for(;;)
|
||||
{
|
||||
int c = waitKey(0);
|
||||
char c = waitChar(0);
|
||||
|
||||
if( (char)c == 27 )
|
||||
if( c == 27 )
|
||||
break;
|
||||
|
||||
if( (char)c == 'r' )
|
||||
if( c == 'r' )
|
||||
{
|
||||
markerMask = Scalar::all(0);
|
||||
img0.copyTo(img);
|
||||
imshow( "image", img );
|
||||
}
|
||||
|
||||
if( (char)c == 'w' || (char)c == ' ' )
|
||||
if( c == 'w' || c == ' ' )
|
||||
{
|
||||
int i, j, compCount = 0;
|
||||
vector<vector<Point> > contours;
|
||||
|
@ -50,7 +50,7 @@ int main()
|
||||
|
||||
imshow("Result", d_res);
|
||||
|
||||
char key = static_cast<char>(waitKey());
|
||||
char key = waitChar();
|
||||
|
||||
if (key == 27)
|
||||
break;
|
||||
|
@ -161,7 +161,7 @@ int main(int argc, const char** argv)
|
||||
if (!bgimg.empty())
|
||||
imshow("mean background image", bgimg);
|
||||
|
||||
int key = waitKey(30);
|
||||
char key = waitChar(30);
|
||||
if (key == 27)
|
||||
break;
|
||||
}
|
||||
|
@ -279,7 +279,7 @@ int main(int argc, const char *argv[])
|
||||
displayState(frameDisp, helpScreen, useGPU, findLargestObject, filterRects, fps);
|
||||
imshow("result", frameDisp);
|
||||
|
||||
char key = (char)waitKey(5);
|
||||
char key = waitChar(5);
|
||||
if (key == 27)
|
||||
{
|
||||
break;
|
||||
|
@ -348,7 +348,7 @@ int main(int argc, const char** argv)
|
||||
imshow(wndTitle, frameDisp);
|
||||
|
||||
//handle input
|
||||
switch (cv::waitKey(3))
|
||||
switch (cv::waitChar(3))
|
||||
{
|
||||
case ' ':
|
||||
bUseGPU = !bUseGPU;
|
||||
|
@ -125,7 +125,7 @@ int main(int argc, char **argv)
|
||||
|
||||
imshow("flow", image);
|
||||
|
||||
char ch = (char)waitKey(3);
|
||||
char ch = waitChar(3);
|
||||
if (ch == 27)
|
||||
running = false;
|
||||
else if (ch == 'm' || ch == 'M')
|
||||
|
@ -81,7 +81,7 @@ int App::run()
|
||||
OpenClose();
|
||||
ErodeDilate();
|
||||
|
||||
char c = (char) waitKey();
|
||||
char c = waitChar();
|
||||
|
||||
switch (c)
|
||||
{
|
||||
|
@ -105,8 +105,8 @@ int main(int argc, char* argv[])
|
||||
for (;;)
|
||||
{
|
||||
updateWindow("OpenGL");
|
||||
int key = waitKey(40);
|
||||
if ((key & 0xff) == 27)
|
||||
char key = waitChar(40);
|
||||
if (key == 27)
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -110,10 +110,10 @@ class App(object):
|
||||
|
||||
cv2.imshow('camshift', vis)
|
||||
|
||||
ch = 0xFF & cv2.waitKey(5)
|
||||
ch = cv2.waitChar(5)
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord('b'):
|
||||
if ch == 'b':
|
||||
self.show_backproj = not self.show_backproj
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
|
@ -77,8 +77,8 @@ if __name__ == '__main__':
|
||||
cv2.imshow('src', src)
|
||||
update()
|
||||
while True:
|
||||
ch = 0xFF & cv2.waitKey()
|
||||
if ch == ord(' '):
|
||||
ch = cv2.waitChar()
|
||||
if ch == ' ':
|
||||
update()
|
||||
if ch == 27:
|
||||
break
|
||||
|
@ -56,7 +56,7 @@ if __name__ == '__main__':
|
||||
vis = hsv_map*h[:,:,np.newaxis] / 255.0
|
||||
cv2.imshow('hist', vis)
|
||||
|
||||
ch = 0xFF & cv2.waitKey(1)
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -66,5 +66,5 @@ if __name__ == '__main__':
|
||||
update(3)
|
||||
cv2.createTrackbar( "levels+3", "contours", 3, 7, update )
|
||||
cv2.imshow('image', img)
|
||||
0xFF & cv2.waitKey()
|
||||
cv2.waitKey()
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -122,9 +122,9 @@ if __name__ == '__main__':
|
||||
update(None)
|
||||
|
||||
while True:
|
||||
ch = cv2.waitKey() & 0xFF
|
||||
ch = cv2.waitChar()
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord(' '):
|
||||
if ch == ' ':
|
||||
defocus = not defocus
|
||||
update(None)
|
||||
|
@ -92,7 +92,7 @@ def main():
|
||||
|
||||
cv2.imshow('frame', frame)
|
||||
cv2.imshow('bin', bin)
|
||||
ch = cv2.waitKey(1) & 0xFF
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == 27:
|
||||
break
|
||||
|
||||
|
@ -59,10 +59,10 @@ if __name__ == '__main__':
|
||||
|
||||
|
||||
while True:
|
||||
ch = 0xFF & cv2.waitKey(50)
|
||||
ch = cv2.waitChar(50)
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord('v'):
|
||||
if ch == 'v':
|
||||
voronoi = not voronoi
|
||||
print('showing', ['distance', 'voronoi'][voronoi])
|
||||
update()
|
||||
|
@ -49,7 +49,7 @@ if __name__ == '__main__':
|
||||
vis = np.uint8(vis/2.)
|
||||
vis[edge != 0] = (0, 255, 0)
|
||||
cv2.imshow('edge', vis)
|
||||
ch = cv2.waitKey(5) & 0xFF
|
||||
ch = cv2.waitChar(5)
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -68,6 +68,6 @@ if __name__ == '__main__':
|
||||
draw_str(vis, (20, 20), 'time: %.1f ms' % (dt*1000))
|
||||
cv2.imshow('facedetect', vis)
|
||||
|
||||
if 0xFF & cv2.waitKey(5) == 27:
|
||||
if cv2.waitChar(5) == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -80,8 +80,8 @@ class App:
|
||||
|
||||
self.rect_sel.draw(vis)
|
||||
cv2.imshow('plane', vis)
|
||||
ch = cv2.waitKey(1)
|
||||
if ch == ord(' '):
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == ' ':
|
||||
self.paused = not self.paused
|
||||
if ch == 27:
|
||||
break
|
||||
|
@ -88,8 +88,8 @@ if __name__ == '__main__':
|
||||
cv2.createTrackbar('outlier %', 'fit line', 30, 100, update)
|
||||
while True:
|
||||
update()
|
||||
ch = cv2.waitKey(0) & 0xFF
|
||||
if ch == ord('f'):
|
||||
ch = cv2.waitChar(0)
|
||||
if ch == 'f':
|
||||
if PY3:
|
||||
cur_func_name = next(dist_func_names)
|
||||
else:
|
||||
|
@ -66,14 +66,14 @@ if __name__ == '__main__':
|
||||
cv2.createTrackbar('hi', 'floodfill', 20, 255, update)
|
||||
|
||||
while True:
|
||||
ch = 0xFF & cv2.waitKey()
|
||||
ch = cv2.waitChar()
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord('f'):
|
||||
if ch == 'f':
|
||||
fixed_range = not fixed_range
|
||||
print('using %s range' % ('floating', 'fixed')[fixed_range])
|
||||
update()
|
||||
if ch == ord('c'):
|
||||
if ch == 'c':
|
||||
connectivity = 12-connectivity
|
||||
print('connectivity =', connectivity)
|
||||
update()
|
||||
|
@ -63,7 +63,7 @@ if __name__ == '__main__':
|
||||
draw_gaussain(img, m, cov, (0, 0, 255))
|
||||
|
||||
cv2.imshow('gaussian mixture', img)
|
||||
ch = 0xFF & cv2.waitKey(0)
|
||||
ch = cv2.waitChar(0)
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -129,27 +129,27 @@ if __name__ == '__main__':
|
||||
|
||||
cv2.imshow('output',output)
|
||||
cv2.imshow('input',img)
|
||||
k = 0xFF & cv2.waitKey(1)
|
||||
k = cv2.waitChar(1)
|
||||
|
||||
# key bindings
|
||||
if k == 27: # esc to exit
|
||||
break
|
||||
elif k == ord('0'): # BG drawing
|
||||
elif k == '0': # BG drawing
|
||||
print(" mark background regions with left mouse button \n")
|
||||
value = DRAW_BG
|
||||
elif k == ord('1'): # FG drawing
|
||||
elif k == '1': # FG drawing
|
||||
print(" mark foreground regions with left mouse button \n")
|
||||
value = DRAW_FG
|
||||
elif k == ord('2'): # PR_BG drawing
|
||||
elif k == '2': # PR_BG drawing
|
||||
value = DRAW_PR_BG
|
||||
elif k == ord('3'): # PR_FG drawing
|
||||
elif k == '3': # PR_FG drawing
|
||||
value = DRAW_PR_FG
|
||||
elif k == ord('s'): # save image
|
||||
elif k == 's': # save image
|
||||
bar = np.zeros((img.shape[0],5,3),np.uint8)
|
||||
res = np.hstack((img2,bar,img,bar,output))
|
||||
cv2.imwrite('grabcut_output.png',res)
|
||||
print(" Result saved as image \n")
|
||||
elif k == ord('r'): # reset everything
|
||||
elif k == 'r': # reset everything
|
||||
print("resetting \n")
|
||||
rect = (0,0,1,1)
|
||||
drawing = False
|
||||
@ -160,7 +160,7 @@ if __name__ == '__main__':
|
||||
img = img2.copy()
|
||||
mask = np.zeros(img.shape[:2],dtype = np.uint8) # mask initialized to PR_BG
|
||||
output = np.zeros(img.shape,np.uint8) # output image to be shown
|
||||
elif k == ord('n'): # segment the image
|
||||
elif k == 'n': # segment the image
|
||||
print(""" For finer touchups, mark foreground and background after pressing keys 0-3
|
||||
and again press 'n' \n""")
|
||||
if (rect_or_mask == 0): # grabcut with rect
|
||||
|
@ -84,29 +84,29 @@ if __name__ == '__main__':
|
||||
|
||||
cv2.imshow('image',im)
|
||||
while True:
|
||||
k = cv2.waitKey(0)&0xFF
|
||||
if k == ord('a'):
|
||||
k = cv2.waitChar(0)
|
||||
if k == 'a':
|
||||
curve = hist_curve(im)
|
||||
cv2.imshow('histogram',curve)
|
||||
cv2.imshow('image',im)
|
||||
print('a')
|
||||
elif k == ord('b'):
|
||||
elif k == 'b':
|
||||
print('b')
|
||||
lines = hist_lines(im)
|
||||
cv2.imshow('histogram',lines)
|
||||
cv2.imshow('image',gray)
|
||||
elif k == ord('c'):
|
||||
elif k == 'c':
|
||||
print('c')
|
||||
equ = cv2.equalizeHist(gray)
|
||||
lines = hist_lines(equ)
|
||||
cv2.imshow('histogram',lines)
|
||||
cv2.imshow('image',equ)
|
||||
elif k == ord('d'):
|
||||
elif k == 'd':
|
||||
print('d')
|
||||
curve = hist_curve(gray)
|
||||
cv2.imshow('histogram',curve)
|
||||
cv2.imshow('image',gray)
|
||||
elif k == ord('e'):
|
||||
elif k == 'e':
|
||||
print('e')
|
||||
norm = cv2.normalize(gray, gray, alpha = 0,beta = 255,norm_type = cv2.NORM_MINMAX)
|
||||
lines = hist_lines(norm)
|
||||
|
@ -41,13 +41,13 @@ if __name__ == '__main__':
|
||||
sketch = Sketcher('img', [img_mark, mark], lambda : ((255, 255, 255), 255))
|
||||
|
||||
while True:
|
||||
ch = 0xFF & cv2.waitKey()
|
||||
ch = cv2.waitChar()
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord(' '):
|
||||
if ch == ' ':
|
||||
res = cv2.inpaint(img_mark, mark, 3, cv2.INPAINT_TELEA)
|
||||
cv2.imshow('inpaint', res)
|
||||
if ch == ord('r'):
|
||||
if ch == 'r':
|
||||
img_mark[:] = img
|
||||
mark[:] = 0
|
||||
sketch.show()
|
||||
|
@ -86,11 +86,11 @@ if __name__ == "__main__":
|
||||
|
||||
cv2.imshow("Kalman", img)
|
||||
|
||||
code = cv2.waitKey(100)
|
||||
code = cv2.waitChar(100)
|
||||
if code != -1:
|
||||
break
|
||||
|
||||
if (code % 0x100) in [27, ord('q'), ord('Q')]:
|
||||
if code in [27, 'q', 'Q']:
|
||||
break
|
||||
|
||||
cv2.destroyWindow("Kalman")
|
||||
|
@ -44,7 +44,7 @@ if __name__ == '__main__':
|
||||
cv2.circle(img, (x, y), 1, c, -1)
|
||||
|
||||
cv2.imshow('gaussian mixture', img)
|
||||
ch = 0xFF & cv2.waitKey(0)
|
||||
ch = cv2.waitChar(0)
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -70,5 +70,5 @@ if __name__ == '__main__':
|
||||
|
||||
cv2.imshow('laplacian pyramid filter', res)
|
||||
|
||||
if cv2.waitKey(1) & 0xFF == 27:
|
||||
if cv2.waitChar(1) == 27:
|
||||
break
|
||||
|
@ -90,17 +90,17 @@ class App:
|
||||
|
||||
cv2.imshow('lk_homography', vis)
|
||||
|
||||
ch = 0xFF & cv2.waitKey(1)
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord(' '):
|
||||
if ch == ' ':
|
||||
self.frame0 = frame.copy()
|
||||
self.p0 = cv2.goodFeaturesToTrack(frame_gray, **feature_params)
|
||||
if self.p0 is not None:
|
||||
self.p1 = self.p0
|
||||
self.gray0 = frame_gray
|
||||
self.gray1 = frame_gray
|
||||
if ch == ord('r'):
|
||||
if ch == 'r':
|
||||
self.use_ransac = not self.use_ransac
|
||||
|
||||
|
||||
|
@ -85,7 +85,7 @@ class App:
|
||||
self.prev_gray = frame_gray
|
||||
cv2.imshow('lk_track', vis)
|
||||
|
||||
ch = 0xFF & cv2.waitKey(1)
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == 27:
|
||||
break
|
||||
|
||||
|
@ -79,15 +79,15 @@ if __name__ == '__main__':
|
||||
cv2.createTrackbar('iters', 'morphology', 1, 10, update)
|
||||
update()
|
||||
while True:
|
||||
ch = 0xFF & cv2.waitKey()
|
||||
ch = cv2.waitChar()
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord('1'):
|
||||
if ch == '1':
|
||||
if PY3:
|
||||
cur_mode = next(modes)
|
||||
else:
|
||||
cur_mode = modes.next()
|
||||
if ch == ord('2'):
|
||||
if ch == '2':
|
||||
if PY3:
|
||||
cur_str_mode = next(str_modes)
|
||||
else:
|
||||
|
@ -176,12 +176,12 @@ class App:
|
||||
self.rect_sel.draw(vis)
|
||||
|
||||
cv2.imshow('frame', vis)
|
||||
ch = cv2.waitKey(10) & 0xFF
|
||||
ch = cv2.waitChar(10)
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord(' '):
|
||||
if ch == ' ':
|
||||
self.paused = not self.paused
|
||||
if ch == ord('c'):
|
||||
if ch == 'c':
|
||||
self.trackers = []
|
||||
|
||||
|
||||
|
@ -78,6 +78,6 @@ if __name__ == '__main__':
|
||||
drag_start = None
|
||||
gray=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||
cv2.imshow("gray",gray)
|
||||
if (cv2.waitKey() & 255) == 27:
|
||||
if cv2.waitChar() == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -37,6 +37,6 @@ if __name__ == '__main__':
|
||||
cv2.polylines(vis, hulls, 1, (0, 255, 0))
|
||||
|
||||
cv2.imshow('img', vis)
|
||||
if 0xFF & cv2.waitKey(5) == 27:
|
||||
if cv2.waitChar(5) == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -83,13 +83,13 @@ if __name__ == '__main__':
|
||||
cur_glitch = warp_flow(cur_glitch, flow)
|
||||
cv2.imshow('glitch', cur_glitch)
|
||||
|
||||
ch = 0xFF & cv2.waitKey(5)
|
||||
ch = cv2.waitChar(5)
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord('1'):
|
||||
if ch == '1':
|
||||
show_hsv = not show_hsv
|
||||
print('HSV flow visualization is', ['off', 'on'][show_hsv])
|
||||
if ch == ord('2'):
|
||||
if ch == '2':
|
||||
show_glitch = not show_glitch
|
||||
if show_glitch:
|
||||
cur_glitch = img.copy()
|
||||
|
@ -65,7 +65,7 @@ if __name__ == '__main__':
|
||||
draw_detections(img, found_filtered, 3)
|
||||
print('%d (%d) found' % (len(found_filtered), len(found)))
|
||||
cv2.imshow('img', img)
|
||||
ch = 0xFF & cv2.waitKey()
|
||||
ch = cv2.waitChar()
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -75,10 +75,10 @@ class App:
|
||||
|
||||
self.rect_sel.draw(vis)
|
||||
cv2.imshow('plane', vis)
|
||||
ch = cv2.waitKey(1) & 0xFF
|
||||
if ch == ord(' '):
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == ' ':
|
||||
self.paused = not self.paused
|
||||
if ch == ord('c'):
|
||||
if ch == 'c':
|
||||
self.tracker.clear()
|
||||
if ch == 27:
|
||||
break
|
||||
|
@ -170,10 +170,10 @@ class App:
|
||||
|
||||
self.rect_sel.draw(vis)
|
||||
cv2.imshow('plane', vis)
|
||||
ch = cv2.waitKey(1) & 0xFF
|
||||
if ch == ord(' '):
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == ' ':
|
||||
self.paused = not self.paused
|
||||
if ch == ord('c'):
|
||||
if ch == 'c':
|
||||
self.tracker.clear()
|
||||
if ch == 27:
|
||||
break
|
||||
|
@ -49,7 +49,7 @@ if __name__ == '__main__':
|
||||
squares = find_squares(img)
|
||||
cv2.drawContours( img, squares, -1, (0, 255, 0), 3 )
|
||||
cv2.imshow('squares', img)
|
||||
ch = 0xFF & cv2.waitKey()
|
||||
ch = cv2.waitChar()
|
||||
if ch == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -108,7 +108,7 @@ if __name__ == '__main__':
|
||||
img = render.getNextFrame()
|
||||
cv2.imshow('img', img)
|
||||
|
||||
ch = 0xFF & cv2.waitKey(3)
|
||||
ch = cv2.waitChar(3)
|
||||
if ch == 27:
|
||||
break
|
||||
#import os
|
||||
|
@ -69,6 +69,6 @@ if __name__ == '__main__':
|
||||
vis = a.copy()
|
||||
draw_str(vis, (20, 20), 'frame %d' % frame_i)
|
||||
cv2.imshow('a', vis)
|
||||
if 0xFF & cv2.waitKey(5) == 27:
|
||||
if cv2.waitChar(5) == 27:
|
||||
break
|
||||
cv2.destroyAllWindows()
|
||||
|
@ -217,10 +217,10 @@ if __name__ == '__main__':
|
||||
ret, img = cap.read()
|
||||
imgs.append(img)
|
||||
cv2.imshow('capture %d' % i, img)
|
||||
ch = 0xFF & cv2.waitKey(1)
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == 27:
|
||||
break
|
||||
if ch == ord(' '):
|
||||
if ch == ' ':
|
||||
for i, img in enumerate(imgs):
|
||||
fn = '%s/shot_%d_%03d.bmp' % (shotdir, i, shot_idx)
|
||||
cv2.imwrite(fn, img)
|
||||
|
@ -81,8 +81,8 @@ if __name__ == '__main__':
|
||||
else:
|
||||
task = DummyTask(process_frame(frame, t))
|
||||
pending.append(task)
|
||||
ch = 0xFF & cv2.waitKey(1)
|
||||
if ch == ord(' '):
|
||||
ch = cv2.waitChar(1)
|
||||
if ch == ' ':
|
||||
threaded_mode = not threaded_mode
|
||||
if ch == 27:
|
||||
break
|
||||
|
@ -58,10 +58,10 @@ while True:
|
||||
cv2.putText(img, "FPS: {}".format(fps), (15, 80), font, 1.0, color)
|
||||
cv2.imshow("Video", img)
|
||||
|
||||
k = 0xFF & cv2.waitKey(1)
|
||||
k = cv2.waitChar(1)
|
||||
|
||||
if k == 27:
|
||||
break
|
||||
elif k == ord("g"):
|
||||
elif k == 'g':
|
||||
convert_rgb = not convert_rgb
|
||||
cap.set(cv2.CAP_PROP_CONVERT_RGB, convert_rgb)
|
||||
|
@ -56,19 +56,19 @@ class App:
|
||||
|
||||
def run(self):
|
||||
while cv2.getWindowProperty('img', 0) != -1 or cv2.getWindowProperty('watershed', 0) != -1:
|
||||
ch = 0xFF & cv2.waitKey(50)
|
||||
ch = cv2.waitChar(50)
|
||||
if ch == 27:
|
||||
break
|
||||
if ch >= ord('1') and ch <= ord('7'):
|
||||
self.cur_marker = ch - ord('0')
|
||||
if ch >= '1' and ch <= '7':
|
||||
self.cur_marker = ch - '0'
|
||||
print('marker: ', self.cur_marker)
|
||||
if ch == ord(' ') or (self.sketch.dirty and self.auto_update):
|
||||
if ch == ' ' or (self.sketch.dirty and self.auto_update):
|
||||
self.watershed()
|
||||
self.sketch.dirty = False
|
||||
if ch in [ord('a'), ord('A')]:
|
||||
if ch in ['a', 'A']:
|
||||
self.auto_update = not self.auto_update
|
||||
print('auto_update if', ['off', 'on'][self.auto_update])
|
||||
if ch in [ord('r'), ord('R')]:
|
||||
if ch in ['r', 'R']:
|
||||
self.markers[:] = 0
|
||||
self.markers_vis[:] = self.img
|
||||
self.sketch.show()
|
||||
|
@ -105,7 +105,7 @@ int main(int argc, const char** argv)
|
||||
imshow("foreground mask", fgmask);
|
||||
imshow("foreground image", fgimg);
|
||||
|
||||
char key = (char)waitKey(30);
|
||||
char key = waitChar(30);
|
||||
|
||||
switch (key)
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user