问题标签 [cv2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 单应性?在某些视图中处理丢失棋盘角的 OpenCV 方法?
我刚刚安装了 OpenCV 3.2.0,我可以从这个问题中找到这个图像中的许多/大部分角落,方法是玩弄对比度然后使用或按照答案中的描述使用。cv2.findChessboardCorners(left_gray, (6,5))
cv2.goodFeaturesToTrack(gray_img,25,0.01,10)
虽然 findChessboardCorners 要么返回所有 6×5=30 个,要么返回所有None
点,但我可以看到,对于质量较低的图像,有时并非所有点都可以通过该 goodFeaturesToTrack
方法找到。
但是当我阅读文档时cv2.calibrateCamera()
,看起来对象点需要与每个视图的图像点一一对应。如果其中一个图像有缺失点,我必须找到它并将其从该图像的对象点列表中删除。
是否有一些 cv2 方法可以自动处理这个问题?
编辑:我现在想知道,正在cv2.findHomography()
使用我在这里寻找的强大方法之一吗?
当然,如果外部行或列全部丢失,则存在无法解决的歧义,但如果缺少一些内部点,则仍然可以进行校准。
我可能会尝试写一些东西,当然只是拒绝任何发现角数错误的视图,但如果已经有一种现有的方法来处理不引起歧义的缺失点,我想先尝试一下。目标是尽可能地自动化该过程,而不会跳过每个找到错误数量的图像。
python - python cv2数组到numpy
我尝试将具有多行的 cv2 图像数组转换为单行一个数组!这是我的代码:
我有这个结果: [array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 , 255, 255, 255, 255], dtype=uint8), 数组([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
但我需要一个线阵列: ['0', '0', '0', '255', '255', '255', '255', '254', '255', '255', '253 ','255','254','255','254','255','254','254','255','255','255','255','255', '255', '255', '255', '253', '253........]
我做错了什么?!也许有一些基本功能可以从 cv2 数组转换为单个数组?
python - 通过 cv2 在 fit 图像上查找太阳黑子
我目前正在处理天文数据(图像),我的任务是编写一个程序,在给定图像上以适合的格式查找太阳黑子。
据我了解,该任务与 cv2 相关,但我遇到了格式方面的巨大障碍。图像数据是 2D float32 numpy 数组,当给 cv2 时会丢失所有细节。
我也尝试将 float32 转换为 uint8,但结果并不好。
左:之前(matplotlib),右:之后(cv2)
正如所见,细节丢失了,这不是一张好照片。那么,也许有解决这个问题的替代方法?
linux - 无法让 cv2 工作 - 即使是最基本的代码
没有太多的工作,这就是为什么标题如此“模糊”。我第一次尝试使用 cv2 来完成我工作中需要的一些任务,但第一次尝试失败了,所以我最终只测试了基本的代码片段。其中,似乎根本不起作用。
Frame,是一个 None 值。代码失败。当我尝试使用 PyCharm IDE 调试模式来检查它的“内容”时,即使是 cap 对象,基本上也没什么。
到目前为止我尝试了什么
- 视频绝对有效,正常播放
- 尝试输入直接路径
- os.getcwd() 给出与视频相同的目录
- 尝试了不同格式的不同视频(avi、mp4)
- 以各种方式重新安装了 cv2 几次(因为我疯狂地试图解决问题,所以有点杂乱无章)
- 使用 cap.read("file") 选项无济于事
- 打印(cv2.版本)>> 3.3.0
潜在线索
就调试而言,它是一场噩梦,因为我得到的有用信息为零,因为代码不会抛出错误,直到它对 Frame 执行操作,该操作为 None。
PyCharm IDE 说 cv2.VideoCapture 有一个意外的参数。更何况,我不知道发生了什么。
我在重新安装时尝试了很多东西,它似乎返回的版本是正确的,但我不知道检查安装是否正确的方法。
关于我的系统的信息
我正在运行 Ubuntu 14.04 (Trusty)。
Python3 - 其他东西有效
PyCharm 2017
如果我应该提供更多信息,请告诉我?另外,如果您对如何改进标题有任何建议,请告诉我更多信息。
python - 如何使用轮廓保存 OpenCV 图像
我想用轮廓保存图像
这是我的代码:
非常感谢。
python-2.7 - cv2.perspectiveTransform() 不接受单应矩阵
以下是关于单应bookhomography-example-1.jpg
性bookhomography-example-2.jpg
的流行 OpenCV 博客文章。
我可以进行单应性和扭曲图像,但是当我尝试使用or时h
orh[0]
不起作用。我也尝试将二维数组转换为元组的元组,但没有变化。这可能很简单,但我无法弄清楚。cv2.perspectiveTransform(pts, h)
cv2.perspectiveTransform(pts, h[0])
h[0]
错误信息:
回溯(最近一次通话最后):
文件“bookhomography stackexchange v00.py”,第 36 行,在 T_dst = cv2.perspectiveTransform(pts_dst, h) TypeError: m is not a numeric tuple
注意:设置False
为True
诱导失败。两条变换线之一是错误的方向,但都失败了。
python - m 不是 numpy 数组,也不是标量
当我尝试运行我的代码时,我遇到了以下错误 - 这是我遇到的错误:
android - 如何在不同的安卓设备上匹配图像?
我需要在不同的 android 设备上检测相同的图像(图标)。整个屏幕是一个画布,所以我使用“cv2”库中的“matchTemplate”方法来检测图像。因为有多种设备具有不同的尺寸(英寸)和分辨率。我正在使用 cv2.resize() 方法。我根据屏幕大小(以像素为单位)调整大小。
width_standard - 是我的原始图标的宽度。它似乎适用于具有相同屏幕尺寸(英寸)和相同分辨率的设备,但是如何为具有不同屏幕尺寸和分辨率的设备调整它的大小?
python-2.7 - Python 2.7/OpenCV 3.3: cv2.initUndistortRectifyMap 中的错误。不显示未失真的校正图像
我想扭曲和纠正我的立体图像。为此,我在 Python 2.7 中使用了 Opencv 3.3。我使用的代码是:
我分别校准了我的相机,然后使用这些获得的矩阵cv2.stereoRectify
来获得R1,R2,P1,P2,Q
我在cv2.initUndistortRectifyMap
. 但我没有正确获得不失真的图像。它看起来像这样:
我的矩阵是:
我已经阅读了很多答案,但没有解决我的问题。
* OpenCV (cv2) 中的 undistortPoints 与 Python 错误结果
使用 initUndistortRectifyMap 去扭曲图像点
这个问题的解决方案是什么?
谢谢。