OpenCV waitKey() 函数在 mac 上总是返回 255
OpenCV waitKey() function always returns 255 on mac
- 我在Mac(版本10.12.2)上测试了OpenCV
waitKey()
功能,但它似乎无法正常工作。当没有按下任何键以及按下任何键时,它总是返回255
!我想知道它是安装不正确还是 OpenCV 本身的错误。任何修复它的想法将不胜感激。 -
这是我的程序的源代码:
#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; }
-
这里是
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 -----------------------------------------------------------------
你应该改用cvWaitKey(n)~在 OpenCV 3.1 之后,当 n 毫秒内没有键控时,cv::waitKey(n) 返回值从 -1 更改为 255。
通常必须用 255 and
结果才能屏蔽多余的位:
key = cv::waitKey(1000) & 255;
无关位可能是移位或控制键等。它们依赖于操作系统。
检测到的按键还取决于您选择的窗口 - 您需要选择图像窗口(具有焦点)IIRC 才能检测按键 - 而不是从中启动程序的终端窗口。
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 什么时候在C++中返回常量引用是个好主意
- 你能重载对象变量名本身返回的内容吗
- 为什么 Serial.println(<char[]>);返回随机字符?
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何获取std::result_of函数的返回类型
- QueryWorkingSet总是返回false
- (C++)分析树以计算返回错误值的简单算术表达式
- 访问者访问变体并返回不同类型时出错
- 如何返回一个类的两个对象相加的结果
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- lower_bound()返回最后一个元素
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- OpenCV waitKey() 函数在 mac 上总是返回 255
- Mac 和 Linux 上的 SDL IMG_Load() 为同一图像返回不同的 BitsPerPixel
- mac语音合成管理器在创建语音通道时,返回Parametererror
- SendARP返回错误的mac地址
- c++ Linux在同一台计算机上获取返回不同值的MAC地址