问题标签 [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.

0 投票
1 回答
1016 浏览

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()使用我在这里寻找的强大方法之一吗?

当然,如果外部行或列全部丢失,则存在无法解决的歧义,但如果缺少一些内部点,则仍然可以进行校准。

我可能会尝试写一些东西,当然只是拒绝任何发现角数错误的视图,但如果已经有一种现有的方法来处理不引起歧义的缺失点,我想先尝试一下。目标是尽可能地自动化该过程,而不会跳过每个找到错误数量的图像。

0 投票
1 回答
810 浏览

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 数组转换为单个数组?

0 投票
0 回答
360 浏览

python - 通过 cv2 在 fit 图像上查找太阳黑子

我目前正在处理天文数据(图像),我的任务是编写一个程序,在给定图像上以适合的格式查找太阳黑子。

据我了解,该任务与 cv2 相关,但我遇到了格式方面的巨大障碍。图像数据是 2D float32 numpy 数组,当给 cv2 时会丢失所有细节。

我也尝试将 float32 转换为 uint8,但结果并不好。

左:之前(matplotlib),右:之后(cv2)

正如所见,细节丢失了,这不是一张好照片。那么,也许有解决这个问题的替代方法?

0 投票
6 回答
58128 浏览

python-3.x - Python3 - OpenCV & cv2.error: (-215) 无法显示捕获的图像

我正在尝试使用opencv-3.3.0, cv2& python3.5

但是,我似乎无法显示我捕获的图像。

  • 我阅读了所有文档。
  • 我尝试了所有可能的答案。
  • 但是,我还是失败了。

我错过了什么?

代码:

错误:

图片:

我的代码。

0 投票
1 回答
104 浏览

linux - 无法让 cv2 工作 - 即使是最基本的代码

没有太多的工作,这就是为什么标题如此“模糊”。我第一次尝试使用 cv2 来完成我工作中需要的一些任务,但第一次尝试失败了,所以我最终只测试了基本的代码片段。其中,似乎根本不起作用。

Frame,是一个 None 值。代码失败。当我尝试使用 PyCharm IDE 调试模式来检查它的“内容”时,即使是 cap 对象,基本上也没什么。

到目前为止我尝试了什么

  1. 视频绝对有效,正常播放
  2. 尝试输入直接路径
  3. os.getcwd() 给出与视频相同的目录
  4. 尝试了不同格式的不同视频(avi、mp4)
  5. 以各种方式重新安装了 cv2 几次(因为我疯狂地试图解决问题,所以有点杂乱无章)
  6. 使用 cap.read("file") 选项无济于事
  7. 打印(cv2.版本)>> 3.3.0

潜在线索

就调试而言,它是一场噩梦,因为我得到的有用信息为零,因为代码不会抛出错误,直到它对 Frame 执行操作,该操作为 None。

PyCharm IDE 说 cv2.VideoCapture 有一个意外的参数。更何况,我不知道发生了什么。

我在重新安装时尝试了很多东西,它似乎返回的版本是正确的,但我不知道检查安装是否正确的方法。

关于我的系统的信息

我正在运行 Ubuntu 14.04 (Trusty)。

Python3 - 其他东西有效

PyCharm 2017

如果我应该提供更多信息,请告诉我?另外,如果您对如何改进标题有任何建议,请告诉我更多信息。

0 投票
3 回答
8757 浏览

python - 如何使用轮廓保存 OpenCV 图像

我想用轮廓保存图像

这是我的代码:

非常感谢。

0 投票
1 回答
4307 浏览

python-2.7 - cv2.perspectiveTransform() 不接受单应矩阵

以下是关于单应bookhomography-example-1.jpgbookhomography-example-2.jpg流行 OpenCV 博客文章。

我可以进行单应性和扭曲图像,但是当我尝试使用or时horh[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

注意:设置FalseTrue诱导失败。两条变换线之一是错误的方向,但都失败了。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
1724 浏览

python - m 不是 numpy 数组,也不是标量

当我尝试运行我的代码时,我遇到了以下错误 - 这是我遇到的错误:

0 投票
0 回答
129 浏览

android - 如何在不同的安卓设备上匹配图像?

我需要在不同的 android 设备上检测相同的图像(图标)。整个屏幕是一个画布,所以我使用“cv2”库中的“matchTemplate”方法来检测图像。因为有多种设备具有不同的尺寸(英寸)和分辨率。我正在使用 cv2.resize() 方法。我根据屏幕大小(以像素为单位)调整大小。

width_standard - 是我的原始图标的宽度。它似乎适用于具有相同屏幕尺寸(英寸)和相同分辨率的设备,但是如何为具有不同屏幕尺寸和分辨率的设备调整它的大小?

0 投票
1 回答
1619 浏览

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 的直接解决方案?

* OpenCV (cv2) 中的 undistortPoints 与 Python 错误结果

cv2.remap 什么也没创建

使用 initUndistortRectifyMap 去扭曲图像点

opencv cv2.remap 创建奇怪的图像*

这个问题的解决方案是什么?

谢谢。