当我跑
!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) 我试图从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 ConnectedComponents 函数获取图像?
通过搜索过去的一些问题,我只能找到如何用不同的颜色对连接的对象进行着色(我测试过并且有效,但我不知道标签是如何工作的)
参考这些先前回答的问题:Stackoverflow 问题 48303309和Stackoverflow 问题 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) 我正在做一个关于图像处理的大学课程项目。这是我的原图:
我想在单个文本行图像上加入附近/重叠的边界框,但我不知道如何。到目前为止,我的代码看起来像这样(感谢@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) 我正在尝试使用 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 获得了更好的整体检测精度。
这是新的结果图像:
我使用 python cv2 模块将 jpg 帧加入视频,但我无法向其中添加音频。是否可以在没有 ffmpeg 的情况下在 python 中添加音频到视频?PS对不起我的英语不好
我正在尝试使用 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 服务器上的腻子上导入此包 - 这可能是有用的信息。
如果有人可以向我解释发生了什么,也许可以解决问题,我将不胜感激!
我有一个灰度图像,我想获得强度为255的像素的所有坐标。
我尝试使用:
pixels = np.where(img[img == 255])
Run Code Online (Sandbox Code Playgroud)
但是我没有得到(X,Y)坐标列表,而是得到了一个数字列表,就像img
是一维矢量一样。
我究竟做错了什么?
我正在尝试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错误图片
我正在.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 帧,使后期处理步骤更加耗时。如何解决这个问题?
opencv-python ×10
opencv ×6
python ×6
python-3.x ×3
captcha ×1
cv2 ×1
ffmpeg ×1
frame-rate ×1
numpy ×1
pip ×1
pycharm ×1
python-3.6 ×1