问题标签 [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 回答
858 浏览

python - 如何在多个图像上使用 cv2.split 和 cv2.merge?

我知道 cv2 函数 split() 和 merge()。在使用此功能拆分列表中的多个图像时,我需要一些帮助。我有一个包含图像的列表。图像都是 numpy 数组。它们采用 YCrCb 格式,基本上是 3 通道格式。

我想使用 cv2.split() 将每个图像分成 Y、Cr、Cb 通道

我正在尝试运行这样的 for 循环:

这是行不通的。它返回一个 Y 通道,而不是每个图像的 12 个(列表中的总图像)Y 通道。

编辑:换句话说,我有 numpy 形状数组,(12,224,224,3)其中有 12 个图像,每个图像大小为 224x224 和 3 个颜色通道。我想访问频道并使用 cv2 拆分它们。

我的目标是将列表中的每个图像分成 3 个通道。请帮忙。

0 投票
1 回答
702 浏览

python - 没有名为 LBPHFacerecognizer 的模块

python 版本 3.6.1
numpy 版本 1.13.1
cv2 版本 3.3.0

AttributeError:模块“cv2.face”没有属性“createLBPHFaceRecognizer”

0 投票
2 回答
714 浏览

python-3.x - Python cv2 cv2.imshow() 在 Windows 中不起作用

我正在尝试使用 python 3.6 opencv 加载示例图像。我不知道为什么我运行程序时没有加载我的图像。这是我的代码:

我已经将斜杠更改为 C:\UsersJP\Desktop\JP Files\Python\Python Programs\FaceRecog\data\test1.jpg 但仍然没有运气。

0 投票
1 回答
396 浏览

python - 如何更改只有白色像素的背景?

我有两张相同大小的灰度图像,其中一张是这个:在此处输入图像描述

我正在尝试为此图像添加背景,即只是将白色像素更改为另一张图片中的相应像素。我设法做到的最好结果只是按位和两张图片的所有像素,但最终的图片在詹姆斯邦德内部失真。我还尝试在两张图片之间进行加权相加,但是当我增加 James Bond 图像的权重时,在生成的图像中可以看到白色像素。

0 投票
0 回答
481 浏览

python - 如何使用python cv2打开16位1通道灰度图像

如何使用 cv2 打开 16 位 1 通道灰度图像?我不想转换文件。该文件已经是我需要的形式。

我期待 1 个 uint16 通道,文件大小应为 2457600

0 投票
3 回答
14960 浏览

python - openCV:使用 findContours 检测圆

我正在开发一个程序,我应该检测相同类型的形状,并用不同的颜色为每种类型着色。

我正在使用cv2.findCountours然后cv2.approxPolyDP检测每个形状。

该程序检测任何具有 8 条边的形状为圆形,因此我决定添加一些检查 - 我正在使用 检查当前轮廓的区域cv2.contourArea,并且我也在检查cv2.minEnclosingCircle(cnt)当前轮廓的区域。

如果它们相等,我们就有一个圆圈。

我打印了每个区域,发现结果是不同的——即使形状明显是圆形。

例如,对于相同的形状,minEnclosureCircle 区域为 628.254637106,contourArea 为 569。另一个示例:minEnclosureCircle 区域为 2220.55512328,contourArea 为 2032.0。

我怎样才能正确计算这个面积?

我将不胜感激任何帮助!

我使用的图像:

和检测到的形状:

0 投票
1 回答
419 浏览

python - openCV:无法使用 findContours 正确检测形状

我正在开发一个程序,我应该检测形状——圆形、正方形和三角形——并用不同的颜色为每种类型着色。

我使用 cv2.findCountours 然后 cv2.approxPolyDP 来检测每个形状。

这是我的代码:

它确实检测到我提到的形状,但它也检测到不是圆形/三角形/正方形的形状并按原样呈现它们。

这是我使用的图像:1

输出:2

任何建议如何解决这个问题?我可以添加哪些考试?

谢谢!

0 投票
1 回答
620 浏览

python - 在标签中显示图像而不保存它

以下几行在我的脚本中:

def 定位交叉(Dy,Dx,中心,imgCross): 如果(中心[1,0]>=中心[0,0]): Dy2 = 中心[0,0] + np.absolute(Dy) 别的: Dy2 = 中心[1,0] + np.absolute(Dy)

if(center[0,1]>=center[1,1]): Dx2 = center[1,1] + np.absolute(Dx)/2 else: Dx2 = center[0,1] + np.absolute(Dx)/2 P1 = (center[0,1]/2,center[0,0]/2) P2 = (center[1,1]/2,center[1,0]/2) P3 = (Dx2/2,Dy2/2+100) P4 = (Dx2/2,Dy2/2-100) cv2.line(imgCross,(int(P1[0]),int(P1[1])),(int(P2[0]),int(P2[1])),(0,0,255),1) cv2.line(imgCross,(int(P3[0]),int(P3[1])),(int(P4[0]),int(P4[1])),(0,0,255),1) imgCross= cv2.flip(imgCross,1) return imgCross

我想用positioningCross 将两条线绘制到imgCross 中并将其显示在我的GUI 的标签中。目前,我正在将修改后的图像保存在一个文件夹中,但我想知道是否可以将其添加到标签而不保存它?

我的解决方案还可以,但我想它可能会更好

有人有想法吗?

0 投票
0 回答
172 浏览

python - 有没有比使用 for 循环方式在 python 中检查灰度更快的方法

我正在尝试编写一个函数来确定图像是否为灰度,如果不是则转换为灰度,并在最后返回该图像。

下面的 for 循环代码运行良好,但速度很慢。有没有更快的方法来检查这个?我浏览了 CV2 文档,但找不到任何东西。

0 投票
2 回答
32562 浏览

python - 如何将numpy矩阵转换为cv2图像[python]

我有一个代表彩色图像的 numpy 2d 矩阵。这个矩阵有一些负数和浮点数,但我当然可以使用 imshow(my_matrix) 显示图像。

my_matrix_screenshot

我需要对这个彩色图像执行直方图均衡,所以我在stackoverflow中找到了一个使用cv2(OpenCV Python equalizeHist彩色图像)的代码,但问题是我无法将二维矩阵转换为需要三个RGB通道的cv矩阵。

我再次搜索,但我发现的只是将常规 3d numpy 矩阵转换为 cv2 矩阵,那么如何将 numpy 2d 矩阵转换为具有 3 个通道的 cv2 矩阵?