- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从 EVOCAM II Microscope from Vision Engineering 中捕获图像使用 OpenCV。它在其手册中说,它可以使用 USB 3.0 数据线插入计算机,然后用作普通网络摄像头。
因此,我使用这个非常简单的代码片段从相机捕获图像:
import cv2
camera = cv2.VideoCapture(0)
ret, frame = camera.read()
if ret:
cv2.imwrite('./test.png', frame)
但是,当我应该得到 1920px x 1080px
RGB 图片时,我得到的是 640px x 480px
带有奇怪伪像的图像:
我尝试在 VLC 或 AMCap 等其他软件上测试摄像头,但我得到的是 640px x 480px
黑色图像或软件甚至无法开始捕获。
我想知道这是编码问题还是相机如何向计算机声明 本身的问题。
我可以通过修改 OpenCV 中的一些参数来解决这个问题还是有什么不同?
非常感谢您的宝贵时间,
编辑 1:
opencv_version -v
在我的 conda 环境中的输出:
General configuration for OpenCV 3.4.2 =====================================
Version control: unknown
Extra modules:
Location (extra): /opt/conda/conda-bld/opencv-suite_1533641454250/work/opencv_contrib-3.4.2/modules
Version control (extra): unknown
Platform:
Timestamp: 2018-08-07T11:32:43Z
Host: Linux 2.6.32-696.10.1.el6.x86_64 x86_64
CMake: 3.12.0
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/gmake
Configuration: Release
CPU/HW features:
Baseline: SSE SSE2 SSE3
requested: SSE3
Dispatched code generation: SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKX
requested: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
SSE4_1 (3 files): + SSSE3 SSE4_1
SSE4_2 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2
FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
AVX (5 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
AVX2 (9 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
AVX512_SKX (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_SKX
C/C++:
Built as dynamic libs?: YES
C++11: YES
C++ Compiler: /opt/conda/conda-bld/opencv-suite_1533641454250/_build_env/bin/x86_64-conda_cos6-linux-gnu-c++ (ver 7.2.0)
C++ flags (Release): -fvisibility-inlines-hidden -std=c++11 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/home/lucas/anaconda3/envs/p35_gpu_jupyter/include -fdebug-prefix-map=${SRC_DIR}=/usr/local/src/conda/${PKG_NAME}-${PKG_VERSION} -fdebug-prefix-map=${PREFIX}=/usr/local/src/conda-prefix -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fopenmp -O3 -DNDEBUG -DNDEBUG
C++ flags (Debug): -fvisibility-inlines-hidden -std=c++11 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/home/lucas/anaconda3/envs/p35_gpu_jupyter/include -fdebug-prefix-map=${SRC_DIR}=/usr/local/src/conda/${PKG_NAME}-${PKG_VERSION} -fdebug-prefix-map=${PREFIX}=/usr/local/src/conda-prefix -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fopenmp -g -DDEBUG -D_DEBUG
C Compiler: /opt/conda/conda-bld/opencv-suite_1533641454250/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc
C flags (Release): -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/home/lucas/anaconda3/envs/p35_gpu_jupyter/include -fdebug-prefix-map=${SRC_DIR}=/usr/local/src/conda/${PKG_NAME}-${PKG_VERSION} -fdebug-prefix-map=${PREFIX}=/usr/local/src/conda-prefix -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 -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fopenmp -O3 -DNDEBUG -DNDEBUG
C flags (Debug): -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/home/lucas/anaconda3/envs/p35_gpu_jupyter/include -fdebug-prefix-map=${SRC_DIR}=/usr/local/src/conda/${PKG_NAME}-${PKG_VERSION} -fdebug-prefix-map=${PREFIX}=/usr/local/src/conda-prefix -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 -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fopenmp -g -DDEBUG -D_DEBUG
Linker flags (Release): -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/home/lucas/anaconda3/envs/p35_gpu_jupyter/lib -L/home/lucas/anaconda3/envs/p35_gpu_jupyter/lib
Linker flags (Debug): -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/home/lucas/anaconda3/envs/p35_gpu_jupyter/lib -L/home/lucas/anaconda3/envs/p35_gpu_jupyter/lib
ccache: NO
Precompiled headers: YES
Extra dependencies: dl m pthread rt
3rdparty dependencies:
OpenCV modules:
To be built: aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dpm face features2d flann freetype fuzzy hdf hfs highgui img_hash imgcodecs imgproc java java_bindings_generator line_descriptor ml objdetect optflow phase_unwrapping photo plot python2 python3 python_bindings_generator reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking video videoio videostab xfeatures2d ximgproc xobjdetect xphoto
Disabled: js world
Disabled by dependency: -
Unavailable: cnn_3dobj cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv matlab ovis sfm ts viz
Applications: apps
Documentation: NO
Non-free algorithms: NO
GUI:
Media I/O:
ZLib: /home/lucas/anaconda3/envs/p35_gpu_jupyter/lib/libz.so (ver 1.2.11)
JPEG: /home/lucas/anaconda3/envs/p35_gpu_jupyter/lib/libjpeg.so (ver 90)
WEBP: build (ver encoder: 0x020e)
PNG: /home/lucas/anaconda3/envs/p35_gpu_jupyter/lib/libpng.so (ver 1.6.34)
TIFF: /home/lucas/anaconda3/envs/p35_gpu_jupyter/lib/libtiff.so (ver 42 / 4.0.9)
JPEG 2000: /home/lucas/anaconda3/envs/p35_gpu_jupyter/lib/libjasper.so (ver 2.0.14)
OpenEXR: build (ver 1.7.1)
HDR: YES
SUNRASTER: YES
PXM: YES
Video I/O:
DC1394: NO
FFMPEG: YES
avcodec: YES (ver 58.18.100)
avformat: YES (ver 58.12.100)
avutil: YES (ver 56.14.100)
swscale: YES (ver 5.1.100)
avresample: YES (ver 4.0.0)
GStreamer: NO
libv4l/libv4l2: NO
v4l/v4l2: linux/videodev.h linux/videodev2.h
gPhoto2: NO
Parallel framework: OpenMP
Trace: YES (with Intel ITT)
Other third-party libraries:
Intel IPP: 2017.0.3 [2017.0.3]
at: /opt/conda/conda-bld/opencv-suite_1533641454250/work/build/3rdparty/ippicv/ippicv_lnx
Intel IPP IW: sources (2017.0.3)
at: /opt/conda/conda-bld/opencv-suite_1533641454250/work/build/3rdparty/ippicv/ippiw_lnx
Lapack: NO
Eigen: YES (ver 3.3.3)
Custom HAL: NO
Protobuf: /home/lucas/anaconda3/envs/p35_gpu_jupyter/lib/libprotobuf.so (3.5.1)
Python 2:
Interpreter: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py2/bin/python (ver 2.7.15)
Libraries: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py2/lib/libpython2.7m.so (ver 2.7.15)
numpy: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py2/lib/python2.7/site-packages/numpy/core/include (ver 1.11.3)
packages path: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py2/lib/python2.7/site-packages
Python 3:
Interpreter: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py3/bin/python (ver 3.7)
Libraries: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py3/lib/libpython3.7m.so (ver 3.7.0)
numpy: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py3/lib/python3.7/site-packages/numpy/core/include (ver 1.11.3)
packages path: /opt/conda/conda-bld/opencv-suite_1533641454250/work/py3/lib/python3.7/site-packages
Python (for build): /opt/conda/conda-bld/opencv-suite_1533641454250/work/py2/bin/python
Java:
ant: /usr/bin/ant (ver 1.7.1)
JNI: /usr/lib/jvm/java/include /usr/lib/jvm/java/include/linux /usr/lib/jvm/java/include
Java wrappers: YES
Java tests: NO
Install to: /home/lucas/anaconda3/envs/p35_gpu_jupyter
-----------------------------------------------------------------
最佳答案
TL;DR 使用的电缆是 USB 2.0,将其替换为 USB 3.0 解决了 Windows 上的捕获问题。
是的,我知道这听起来很愚蠢,但我得到这张奇怪图像的原因是 USB 电缆是 2.0 而不是 3.0。由于电缆已经插入相机,我没有费心去验证它,而是将其更改为 3.0 使其立即在相机 Windows 应用程序上运行。该公司还确认 EVO Cam II 使用 DirectShow 格式生成信号。
但是,当比较相机保存在 USB 驱动器上的图像和使用 USB 数据线拍摄的图像时,我意识到质量并不相似。尤其是在我的情况下,使用 USB 数据线捕获的图像质量不够好。因此我不会再往这个方向追了。
但是,对于那些想从我离开的地方继续的人来说,这里有一些视觉工程支持人员给我的链接,让我可以在 Linux 上使用 OpenCV 捕获图像:
目前他们还没有直接的解决方案。
关于python - 使用 OpenCV 捕获的显微镜图像的解码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53282287/
多个 ChildException catch block 和一个 Exception catch block 之间哪个更好? 更好,我的意思是以良好的实践方式。 举例说明: public stati
我正在尝试将脱机计算机记录在文本文件中,以便以后可以再次运行它们。似乎没有被记录或捕获。 function Get-ComputerNameChange { [CmdletBinding()]
我正在将 Scala 'try/catch' 测试代码转换为使用 'intercept' 有没有我不应该使用“拦截”的场景?使用 'intercept' 而不是 'try/catch' 的唯一好处是简
我对erlang很陌生,我正在尝试使用基本的try/catch语句来工作。我正在使用Webmachine处理一些请求,我真正想做的就是解析一些JSON数据并将其返回。如果JSON数据无效,我只想返回一
我不知道如何捕获删除按键。我发现在 ASCII 代码表中,它位于 127 位,但是 if (Key = #127) then 却无济于事。 然后我检查了 VK_DELETE 的值,它是 47。尝试使用
我很少在失败时对数据库查询使用唯一的错误消息 我经常使用简短的标准消息,例如“数据库错误/失败。请与网站管理员联系”或类似的消息。或自动发送给我 我正在寻找一种在PDO中全局设置一次try {}和ca
我有一个变量CompletableFuture completableFuture 。我希望能够使用任何类型的对象来完成它。例如:completableFuture.complete(new Stri
我认为这是基本的东西,但我不知道该怎么做。为什么我得到 IOException never throw in body of相应的 try 语句 public static void main(Str
我在此代码中遇到 JSON 异常: JSONObject jObject = new JSONObject(JSONString); pontosUsuario.setIdUsuari
我正在尝试打印出用单引号括起来的文本。 /bin/bash -lc '/home/CASPER_REPORTS/scripts/CASPER_gen_report.sh CASPER_1' /bin/
我这里遇到了一点问题。我想弄清楚如何捕获 IllegalArgumentException。对于我的程序,如果用户输入负整数,程序应该捕获 IllegalArgumentException 并询问用户
我无法理解 EJBTransactionRolledbackException。 我有实体: @Entity public class MyEntity { @Id @Generate
对于我给自己提出的以下挑战,如果社区的经验给我任何建议,我将不胜感激 - 即,这里有任何关于最佳方法/方向的指示吗? 要求 允许收集/实时监控从用户 Windows PC 到一组特定 IP 地址(或
我想在我的 ABAP 代码中捕获并处理 SAPSQL_DATA_LOSS。 我试过这个: try. SELECT * FROM (rtab_name) AS rtab
我知道捕获错误不是一个好的做法,但在这种情况下,这样做很重要。我正在尝试运行一个包含游戏一部分的 jar,但它给了我一个 unsatisfiedlink 错误,但这是有趣的部分:我正在使用这段代码:
我有一个表单页面,当我保存它时,它会覆盖数据库。表单页面中有一个文本框,允许用户输入 4000 个字符,但如果用户输入的字符超过此值,则会出现以下错误: ERROR 15:54:05 Abstrac
我想知道在python中绑定(bind)键的最简单方法 例如,默认的 python 控制台窗口出现并等待,然后在 psuedo -> if key "Y" is pressed: print (
下面是别人写的类。 我面临的问题是,当它进入parse method时与 null as the rawString ,它正在扔NumberFormatException 。 所以我想做的是,我应该捕
我有一个简单的脚本,可以捕获所有鼠标单击,除非您单击实际有效的内容。链接、Flash 视频等。我如何调整它,以便无论用户点击什么,在视频加载、新页面加载等之前,它都会发送我构建的简单 GET 请求?
我有一个带有一些选择列表的表单,当选择某些值时,这些列表将显示/隐藏更多输入字段。 问题是大多数用户都是数据输入人员,因此他们在输入数据时大量使用键盘,并且选择列表的 change 事件仅在焦点离开输
我是一名优秀的程序员,十分优秀!