繁体   English   中英

OpenCV waitKey() 函数在 mac 上总是返回 255

[英]OpenCV waitKey() function always returns 255 on mac

  1. ) but it didn't seem to work correctly .我在Mac )上测试了OpenCV waitKey()函数,但它似乎无法正常工作 当没有按下任何键以及按下任何键时,它总是返回255 我想知道它是安装不正确还是 OpenCV 本身的错误 任何修复它的想法将不胜感激。
  2. 这里是我的程序的源代码:

     #include "opencv2/highgui/highgui.hpp" #include <iostream> int main() { int ch; cv::namedWindow("Test waitKey()", cv::WINDOW_AUTOSIZE); cv::Mat image = cv::Mat(100,100,CV_8U, cv::Scalar(0)); cv::imshow("Test waitKey()", image); for (;;){ ch = cv::waitKey(1000); std::cout << ch << std::endl; // always return 255 // and this if statement will never be executed! if (ch == 'q') break; } return 0; }
  3. 这里是cv::getBuildInformation()函数的输出:

     General configuration for OpenCV 3.2.0 ===================================== Version control: unknown Platform: Timestamp: 2017-01-14T14:50:25Z Host: Darwin 16.3.0 x86_64 CMake: 3.7.2 CMake generator: Unix Makefiles CMake build tool: /usr/bin/make Configuration: RELEASE C/C++: Built as dynamic libs?: YES C++ Compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ (ver 8.0.0.8000042) C++ flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -fno-omit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG C++ flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -fno-omit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG C Compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc C flags (Release): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -fno-omit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG C flags (Debug): -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -fno-omit-frame-pointer -msse -msse2 -mno-avx -msse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG Linker flags (Release): Linker flags (Debug): ccache: NO Precompiled headers: NO Extra dependencies: -framework OpenCL -framework Cocoa -framework AVFoundation -framework CoreGraphics -framework CoreMedia -framework CoreVideo -framework QuartzCore -framework Accelerate 3rdparty dependencies: libjpeg libwebp libpng libtiff libjasper IlmImf zlib OpenCV modules: To be built: core flann imgproc ml photo video imgcodecs shape videoio highgui objdetect superres ts features2d calib3d stitching videostab python2 Disabled: world Disabled by dependency: - Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python3 viz GUI: QT: NO Cocoa: YES OpenGL support: NO VTK support: NO Media I/O: ZLib: build (ver 1.2.8) JPEG: build (ver 90) WEBP: build (ver 0.3.1) PNG: build (ver 1.6.24) TIFF: build (ver 42 - 4.0.2) JPEG 2000: build (ver 1.900.1) OpenEXR: build (ver 1.7.1) GDAL: NO GDCM: NO Video I/O: DC1394 1.x: NO DC1394 2.x: NO FFMPEG: NO avcodec: NO avformat: NO avutil: NO swscale: NO avresample: NO GStreamer: NO OpenNI: NO OpenNI PrimeSensor Modules: NO OpenNI2: NO PvAPI: NO GigEVisionSDK: NO Aravis SDK: NO AVFoundation: YES V4L/V4L2: NO/NO XIMEA: NO gPhoto2: NO Parallel framework: GCD Other third-party libraries: Use IPP: 9.0.1 [9.0.1] at: /Users/ngoclinhng/opencv/release/3rdparty/ippicv/ippicv_osx Use IPP Async: NO Use VA: NO Use Intel VA-API/OpenCL: NO Use Lapack: YES (-framework Accelerate) Use Eigen: NO Use Cuda: NO Use OpenCL: YES Use OpenVX: NO Use custom HAL: NO OpenCL: <Link with OpenCL library> Link libraries: -framework OpenCL Use AMDFFT: NO Use AMDBLAS: NO Python 2: Interpreter: /usr/bin/python2.7 (ver 2.7.10) Libraries: /usr/lib/libpython2.7.dylib (ver 2.7.10) numpy: /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include (ver 1.8.0rc1) packages path: lib/python2.7/site-packages Python 3: Interpreter: /Users/ngoclinhng/anaconda/bin/python3 (ver 3.5.2) Python (for build): /usr/bin/python2.7 Java: ant: NO JNI: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/JavaVM.framework/Headers /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/JavaVM.framework/Headers /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/JavaVM.framework/Headers Java wrappers: NO Java tests: NO Matlab: Matlab not found or implicitly disabled Documentation: Doxygen: NO Tests and samples: Tests: YES Performance tests: YES C/C++ Examples: NO Install path: /usr/local cvconfig.h is in: /Users/ngoclinhng/opencv/release -----------------------------------------------------------------

通常来讲,必须and 255的结果来屏蔽外来位出:

key = cv::waitKey(1000) & 255;

无关的位可能是shift键或控制键等。它们与OS相关。

被检测到的按键也取决于您选择了哪个窗口-您需要选择要识别按键的IIRC图像窗口(具有焦点),而不是从中启动程序的终端窗口。

您应该改用cvWaitKey(n)〜在OpenCV 3.1之后,如果在n个毫秒内没有按下任何键,则cv :: waitKey(n)的返回值将从-1更改为255。

在带有OpenCV 3.4的Mac上

    int key = cvWaitKey(10);
    switch(key) {
        case 'x':
            break;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM