标签: opencv-python

`opencv-python 的构建轮(PEP 517)...... -` 永远运行

当我跑

!pip install imgaug==0.4.0
Run Code Online (Sandbox Code Playgroud)

以下是输出

Collecting imgaug==0.4.0
  Using cached https://files.pythonhosted.org/packages/66/b1/af3142c4a85cba6da9f4ebb5ff4e21e2616309552caca5e8acefe9840622/imgaug-0.4.0-py2.py3-none-any.whl
Requirement already satisfied: Pillow in /opt/conda/envs/Python-3.6/lib/python3.6/site-packages (from imgaug==0.4.0) (5.4.1)
Requirement already satisfied: numpy>=1.15 in /opt/conda/envs/Python-3.6/lib/python3.6/site-packages (from imgaug==0.4.0) (1.15.4)
Collecting Shapely (from imgaug==0.4.0)
  Using cached https://files.pythonhosted.org/packages/9d/18/557d4f55453fe00f59807b111cc7b39ce53594e13ada88e16738fb4ff7fb/Shapely-1.7.1-cp36-cp36m-manylinux1_x86_64.whl
Requirement already satisfied: six in /opt/conda/envs/Python-3.6/lib/python3.6/site-packages (from imgaug==0.4.0) (1.12.0)
Requirement already satisfied: matplotlib in /opt/conda/envs/Python-3.6/lib/python3.6/site-packages (from imgaug==0.4.0) (3.0.2)
Collecting scikit-image>=0.14.2 (from imgaug==0.4.0)
  Using cached https://files.pythonhosted.org/packages/0e/ba/53e1bfbdfd0f94514d71502e3acea494a8b4b57c457adbc333ef386485da/scikit_image-0.17.2-cp36-cp36m-manylinux1_x86_64.whl
Requirement already satisfied: imageio in /opt/conda/envs/Python-3.6/lib/python3.6/site-packages (from imgaug==0.4.0) (2.4.1)
Collecting opencv-python (from imgaug==0.4.0)
  Using cached https://files.pythonhosted.org/packages/77/f5/49f034f8d109efcf9b7e98fbc051878b83b2f02a1c73f92bbd37f317288e/opencv-python-4.4.0.42.tar.gz
  Installing build dependencies ... …
Run Code Online (Sandbox Code Playgroud)

python python-3.x opencv-python

23
推荐指数
5
解决办法
2万
查看次数

在Python中将OpenCV帧流式传输到HTML

我试图从opencv(Python)中的URL读取视频,然后逐帧处理它,然后将其发送到HTML页面.

但我只得到第一帧,之后该程序给出以下错误 在此输入图像描述

这是我的主文件(main.py)

from flask import Flask, render_template, Response
from camera import VideoCamera
import pdb
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

def gen(camera):
    while True:
        frame = camera.get_frame()
        yield (b'--frame\r\n'
                b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')

@app.route('/video_feed')
def video_feed():
    return Response(gen(VideoCamera()),
                    mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    app.run(host='127.0.0.1', debug=True)
Run Code Online (Sandbox Code Playgroud)

这是camera.py文件:

    import cv2
    import urllib
    import pdb
    import numpy as np

    face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    #https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_eye.xml
    eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

    class VideoCamera(object):
        def __init__(self):
            # Using OpenCV …
Run Code Online (Sandbox Code Playgroud)

python opencv opencv-python

12
推荐指数
1
解决办法
8777
查看次数

如何使用 OpenCV ConnectedComponents 获取图像

如何使用 Python OpenCV ConnectedComponents 函数获取图像?

通过搜索过去的一些问题,我只能找到如何用不同的颜色对连接的对象进行着色(我测试过并且有效,但我不知道标签是如何工作的)
参考这些先前回答的问题:Stackoverflow 问题 48303309Stackoverflow 问题 46441893

使用此代码,我可以获得阴影输出

import cv2
import numpy as np

img = cv2.imread('eGaIy.jpg', 0)
img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)[1]  # ensure binary
ret, labels = cv2.connectedComponents(img)

# Map component labels to hue val
label_hue = np.uint8(179*labels/np.max(labels))
blank_ch = 255*np.ones_like(label_hue)
labeled_img = cv2.merge([label_hue, blank_ch, blank_ch])

# cvt to BGR for display
labeled_img = cv2.cvtColor(labeled_img, cv2.COLOR_HSV2BGR)

# set bg label to black
labeled_img[label_hue==0] = 0

cv2.imshow('labeled.png', labeled_img)
cv2.waitKey() …
Run Code Online (Sandbox Code Playgroud)

python opencv opencv-python

11
推荐指数
1
解决办法
1万
查看次数

如何在 OpenCV Python 中加入附近的边界框

我正在做一个关于图像处理的大学课程项目。这是我的原图:在此处输入图片说明

我想在单个文本行图像上加入附近/重叠的边界框,但我不知道如何。到目前为止,我的代码看起来像这样(感谢@HansHirse 的帮助):

import os
import cv2
import numpy as np
from scipy import stats
image = cv2.imread('example.png')

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

#dilation
kernel = np.ones((5,5), np.uint8)
img_dilation = cv2.dilate(thresh, kernel, iterations=1)

#find contours
ctrs, hier = cv2.findContours(img_dilation.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# https://www.pyimagesearch.com/2015/04/20/sorting-contours-using-python-and-opencv/
def sort_contours(cnts, method="left-to-right"):
    # initialize the reverse flag and sort index
    reverse = False
    i = 0

    # handle if we need to sort in reverse
    if method == "right-to-left" or method == "bottom-to-top":
        reverse = …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing opencv-python

9
推荐指数
2
解决办法
7732
查看次数

简单的验证码解决

我正在尝试使用 OpenCV 和 pytesseract 解决一些简单的验证码。一些验证码样本是:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

我试图用一些过滤器去除嘈杂的点:

import cv2
import numpy as np
import pytesseract

img = cv2.imread(image_path)
_, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
img = cv2.morphologyEx(img, cv2.MORPH_OPEN, np.ones((4, 4), np.uint8), iterations=1)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.medianBlur(img, 3)
img = cv2.GaussianBlur(img, (5, 5), 0)
cv2.imwrite('res.png', img)
print(pytesseract.image_to_string('res.png'))
Run Code Online (Sandbox Code Playgroud)

结果转换后的图像是:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

不幸的是,pytesseract 只能正确识别第一个验证码。还有其他更好的改造吗?

最终更新:

正如@Neil 所建议的那样,我尝试通过检测连接的像素来消除噪声。为了找到连接的像素,我找到了一个名为 的函数connectedComponentsWithStats,它检测连接的像素并为组(组件)分配一个标签。通过查找连接组件并删除具有少量像素的组件,我设法使用 pytesseract 获得了更好的整体检测精度。

这是新的结果图像:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

captcha python-tesseract opencv-python

9
推荐指数
1
解决办法
1183
查看次数

Python 将音频添加到视频 opencv

我使用 python cv2 模块将 jpg 帧加入视频,但我无法向其中添加音频。是否可以在没有 ffmpeg 的情况下在 python 中添加音频到视频?PS对不起我的英语不好

opencv ffmpeg python-3.x opencv-python

7
推荐指数
1
解决办法
1万
查看次数

尝试导入 cv2(opencv-python) 包时出错

我正在尝试使用 cv2(opencv-python) 包访问我的网络摄像头。

当我尝试导入它时,出现此错误:

Traceback (most recent call last):
  File "server.py", line 6, in <module>
    import cv2
  File "/usr/local/lib/python3.8/dist-packages/cv2/__init__.py", line 5, in <module>
    from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

注意:我正在尝试在 Linode 服务器上的腻子上导入此包 - 这可能是有用的信息。

如果有人可以向我解释发生了什么,也许可以解决问题,我将不胜感激!

python-3.x cv2 opencv-python

7
推荐指数
1
解决办法
7267
查看次数

Numpy + OpenCV-Python:获取白色像素的坐标

我有一个灰度图像,我想获得强度为255的像素的所有坐标。

我尝试使用:

pixels = np.where(img[img == 255])
Run Code Online (Sandbox Code Playgroud)

但是我没有得到(X,Y)坐标列表,而是得到了一个数字列表,就像img是一维矢量一样。

我究竟做错了什么?

numpy opencv-python

6
推荐指数
0
解决办法
5838
查看次数

无法在PyCharm上导入cv2

我正在尝试cv2在PyCharm中导入模块,但显示错误。我也在码头尝试过

pip install opencv-python
pip3 install cv2
pip install opencv-python
pip3 install cv2
Run Code Online (Sandbox Code Playgroud)

还有什么。

尝试opencv-python从终端安装显示此

Requirement already satisfied: opencv-python in ./anaconda3/lib/python3.6/site-packages (3.4.1.15)
Run Code Online (Sandbox Code Playgroud)

并尝试cv2从终端安装显示此

Could not find a version that satisfies the requirement cv2 (from versions: )
No matching distribution found for cv2
Run Code Online (Sandbox Code Playgroud)

但是,尝试cv2在Pycharm 上导入会显示以下内容:

pycharm错误图片

python opencv pip pycharm opencv-python

6
推荐指数
2
解决办法
1万
查看次数

无法使用 cv2.VideoCapture(video_path).set(cv2.CAP_PROP_FPS, new_frame_rate) 更改输入视频的帧速率

我正在.mp4使用 opencv-python (3.4.3.18) 和 python (3.6.6)读取视频文件

vid = cv2.VideoCapture(video_path)
Run Code Online (Sandbox Code Playgroud)

原始视频大约有 59 FPS,我想将其降低到 10 FPS。所以,我cv2.CAP_PROP_FPS使用以下设置属性,

flag = vid.set(cv2.CAP_PROP_FPS, 10)
Run Code Online (Sandbox Code Playgroud)

(参考:https : //docs.opencv.org/3.4.3/d8/dfe/classcv_1_1VideoCapture.html#a8c6d8c2d37505b5ca61ffd4bb54e9a7c

但是,当我打印flag它给出的值时False。这意味着VideoCapture实例使用的后端不支持该属性。因此,当我使用阅读框架时,

return_value, frame = vid.read()
Run Code Online (Sandbox Code Playgroud)

它返回所有 59 帧,使后期处理步骤更加耗时。如何解决这个问题?

python opencv frame-rate python-3.6 opencv-python

6
推荐指数
1
解决办法
3629
查看次数