问题标签 [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 - 如何在多个图像上使用 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 个通道。请帮忙。
python - 没有名为 LBPHFacerecognizer 的模块
python 版本 3.6.1
numpy 版本 1.13.1
cv2 版本 3.3.0
AttributeError:模块“cv2.face”没有属性“createLBPHFaceRecognizer”
python-3.x - Python cv2 cv2.imshow() 在 Windows 中不起作用
我正在尝试使用 python 3.6 opencv 加载示例图像。我不知道为什么我运行程序时没有加载我的图像。这是我的代码:
我已经将斜杠更改为 C:\UsersJP\Desktop\JP Files\Python\Python Programs\FaceRecog\data\test1.jpg 但仍然没有运气。
python - 如何使用python cv2打开16位1通道灰度图像
如何使用 cv2 打开 16 位 1 通道灰度图像?我不想转换文件。该文件已经是我需要的形式。
我期待 1 个 uint16 通道,文件大小应为 2457600
python - openCV:使用 findContours 检测圆
我正在开发一个程序,我应该检测相同类型的形状,并用不同的颜色为每种类型着色。
我正在使用cv2.findCountours
然后cv2.approxPolyDP
检测每个形状。
该程序检测任何具有 8 条边的形状为圆形,因此我决定添加一些检查 - 我正在使用 检查当前轮廓的区域cv2.contourArea
,并且我也在检查cv2.minEnclosingCircle(cnt)
当前轮廓的区域。
如果它们相等,我们就有一个圆圈。
我打印了每个区域,发现结果是不同的——即使形状明显是圆形。
例如,对于相同的形状,minEnclosureCircle 区域为 628.254637106,contourArea 为 569。另一个示例:minEnclosureCircle 区域为 2220.55512328,contourArea 为 2032.0。
我怎样才能正确计算这个面积?
我将不胜感激任何帮助!
我使用的图像:
和检测到的形状:
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 的标签中。目前,我正在将修改后的图像保存在一个文件夹中,但我想知道是否可以将其添加到标签而不保存它?
我的解决方案还可以,但我想它可能会更好
有人有想法吗?
python - 有没有比使用 for 循环方式在 python 中检查灰度更快的方法
我正在尝试编写一个函数来确定图像是否为灰度,如果不是则转换为灰度,并在最后返回该图像。
下面的 for 循环代码运行良好,但速度很慢。有没有更快的方法来检查这个?我浏览了 CV2 文档,但找不到任何东西。
python - 如何将numpy矩阵转换为cv2图像[python]
我有一个代表彩色图像的 numpy 2d 矩阵。这个矩阵有一些负数和浮点数,但我当然可以使用 imshow(my_matrix) 显示图像。
我需要对这个彩色图像执行直方图均衡,所以我在stackoverflow中找到了一个使用cv2(OpenCV Python equalizeHist彩色图像)的代码,但问题是我无法将二维矩阵转换为需要三个RGB通道的cv矩阵。
我再次搜索,但我发现的只是将常规 3d numpy 矩阵转换为 cv2 矩阵,那么如何将 numpy 2d 矩阵转换为具有 3 个通道的 cv2 矩阵?