小编Sre*_*ran的帖子

使用python OpenCV实时接收webRTC视频流

嗨,
我正在创建一个管道,我需要在其中访问来自相机的数据并在其中执行一些 OpenCV 算法。我可以使用 webRTC 从源发送视频。https://lostechies.com/derickbailey/2014/03/13/build-a-local-webcam-with-webrtc-in-less-than-20-lines/

但是,我需要帮助的是如何在 Python 中接收视频流并进行处理。如何访问从 webRTC 流到 Python 后端的视频源?

这是运行的javascript代码。

(function(){
  var mediaOptions = { audio: false, video: true };

  if (!navigator.getUserMedia) {
      navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
  }

  if (!navigator.getUserMedia){
    return alert('getUserMedia not supported in this browser.');
  }

  navigator.getUserMedia(mediaOptions, success, function(e) {
    console.log(e);
  });

  function success(stream){
    var video = document.querySelector("#player");
    video.src = window.URL.createObjectURL(stream);
  }
})();
 
Run Code Online (Sandbox Code Playgroud)

我需要帮助使用 Python 从这个 Javascript 接收视频。

javascript python opencv python-3.x webrtc

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

将缺失值保留为“NaN”的 LabelEncoder

我正在尝试使用标签编码器将分类数据转换为数值。

我需要一个 LabelEncoder 将我的缺失值保留为 'NaN' 以便之后使用 Imputer。所以我想在像这样标记后使用掩码来替换原始数据框

df = pd.DataFrame({'A': ['x', np.NaN, 'z'], 'B': [1, 6, 9], 'C': [2, 1, np.NaN]})


    A   B   C
0   x   1   2.0
1   NaN 6   1.0
2   z   9   NaN


dfTmp = df
mask = dfTmp.isnull()

       A    B   C
0   False   False   False
1   True    False   False
2   False   False   True
Run Code Online (Sandbox Code Playgroud)

所以我得到一个带有真/假值的数据框

然后,在创建编码器中:

df = df.astype(str).apply(LabelEncoder().fit_transform)
Run Code Online (Sandbox Code Playgroud)

我该如何继续,以便对这些值进行编码?

谢谢

python dataframe pandas

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

Python中重复排列的数量?

Python中有没有计算重复排列数的函数?我知道使用 itertools 我可以生成它们,但我只想要一种更快的方法来进行计算并避免计算阶乘,我对生成所有可能的排列不感兴趣。

例:计算4个A、3个B、5个C可能组成的字符串。

分辨率= 12!/(4!3!5!)

或者在代码中:

from math import factorial
from functools import reduce
rep=[4,3,5]
result= factorial(sum(rep))//reduce(lambda x,y: x*y, map(factorial, rep))
Run Code Online (Sandbox Code Playgroud)

python python-itertools

5
推荐指数
0
解决办法
533
查看次数

KafkaTimeoutError('60.0 秒后无法更新元数据。')

我正在使用Python 3.6编写一个Kafka生产者,Python-kafka客户端版本是1.4.4\xe3\x80\x82Kafka版本是:2.1.0和1.1.1(尝试了两个版本),但是当我写一条消息时向生产者抛出此错误:

\n\n
KafkaTimeoutError(\'Failed to update metadata after 60.0 secs.\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的客户端代码:

\n\n
producer = KafkaProducer(\n  bootstrap_servers=[\'mq-server:9092\'],\n  api_version = (0,10,2,0) # solve no broker error\n)\n\nproducer.send("dolphin-test".encode(\'utf-8\'),b"test")\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我修改的服务器配置:

\n\n
listeners=PLAINTEXT://10.142.0.2:9092\nadvertised.listeners=PLAINTEXT://10.142.0.2:9092\n
Run Code Online (Sandbox Code Playgroud)\n\n

当使用脚本生成和使用消息时,它工作正常!这是客户端跟踪输出:

\n\n
D:\\project\\souce\\pydolphin-service>D:/Programs/Python/Python37/python.exe d:/project/souce/pydolphin-service/dolphin/producer.py\nTraceback (most recent call last):\n  File "d:/project/souce/pydolphin-service/dolphin/producer.py", line 14, in <module>\n    future = producer.send(\'my-topic\', b\'raw_bytes\')\n  File "D:\\Programs\\Python\\Python37\\lib\\site-packages\\kafka\\producer\\kafka.py", line 555, in send\n    self._wait_on_metadata(topic, self.config[\'max_block_ms\'] / 1000.0)\n  File "D:\\Programs\\Python\\Python37\\lib\\site-packages\\kafka\\producer\\kafka.py", line 682, in _wait_on_metadata\n    "Failed to update metadata after %.1f secs." % (max_wait,))\nkafka.errors.KafkaTimeoutError: KafkaTimeoutError: Failed to update metadata after 60.0 …
Run Code Online (Sandbox Code Playgroud)

python apache-kafka kafka-python

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

从扫描文档 opencv python 中提取内衬表

我想从扫描的表格中提取信息并将其存储为 csv。现在我的表提取算法执行以下步骤。

  1. 应用歪斜校正
  2. 应用高斯滤波器进行去噪。
  3. 使用 Otsu 阈值进行二值化
  4. 做形态学开运算。
  5. 精明的egde检测
  6. 进行霍夫变换以获得表格行。
  7. 删除重复行(10 像素范围内的相同行)
  8. 使用线的斜率过滤水平线和垂直线(水平线和垂直线的斜率应小于 +/-5 度)。

该算法适用于数字原生 pdf 和大多数扫描文档。但是,某些文档有一个嘈杂的表格,因此无法正确识别行。

这是我的算法失败的示例图像。

原始图像

这些是我在这张桌子上做的操作。1.高斯模糊

高斯模糊

2.Otsu阈值

大津阈值

3.形态开口

形态开口

4.Canny边缘检测

Canny 边缘检测

5.filtered lines,如您所见,这些线条显然没有正确识别。

过滤后的行,如您所见,这些行显然没有正确识别。

任何人都可以提出更好的方法来从这种质量较差的扫描中提取水平线和垂直线。

提前致谢!!

python opencv image-processing hough-transform opencv-python

5
推荐指数
1
解决办法
3429
查看次数

使用现有的frozen_interface_graph.pb 和label_map.pbtxt 部署TFX

我已经用 fastR-CNN 网络训练了一个物体检测模型,frozen_interface_graph.pblabel_map.pbtxt在训练后进行了训练。我想将它部署为 RESTAPI 服务器,以便可以从没有 Tensorflow 的系统中调用它。那是我遇到TFX的时候。

我如何使用TFX tensorflow-model-server加载此模型并托管 RESTAPI,以便我可以将图像作为 POST 请求发送进行预测?

https://www.tensorflow.org/tfx/tutorials/serving/rest_simple这是我找到的参考资料,但模型的格式与我目前的格式不同。是否有任何机制可以重用我目前拥有的模型,或者我必须使用 Keras 重新训练并部署,如参考中所示。

python tensorflow tfx

5
推荐指数
1
解决办法
294
查看次数

使用opencv python检测二进制图像中的补丁

我想检测这里输入图像描述中的所有补丁,我附上了用于检测它们的代码:

import cv2
import numpy as np
import matplotlib.pyplot as plt


image=cv2.imread("bw2.jpg",0)

# convert to RGB
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# convert to grayscale
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# create a binary thresholded image
_, binary = cv2.threshold(gray, 0, 500, cv2.THRESH_BINARY_INV)
# show it
plt.imshow(gray, cmap="gray")
plt.show()
# find the contours from the thresholded image
contours, hierarchy = cv2.findContours(gray, cv2.RETR_TREE, 
cv2.CHAIN_APPROX_SIMPLE)
print("contours:",contours)
# draw all contours
for c in contours:
if cv2.contourArea(c) < 3000:
    continue

(x, y, w, …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing

5
推荐指数
1
解决办法
1097
查看次数

无法解析位置 0 处的字符串问题

我用

"""Data taken from https://datos.gob.mx/busca/organization/conapo and 
https://es.wikipedia.org/wiki/Anexo:Entidades_federativas_de_M%C3%A9xico_por_superficie,_poblaci%C3%B3n_y_densidad """

total_population_segmentation = pd.read_html('professional_segmentation_mexico.html')
population_segmentation = pd.read_html('population_segmentation.html')
Run Code Online (Sandbox Code Playgroud)

其次是

total_population_segmentation = population_segmentation[2]
total_population_segmentation = total_population_segmentation['Población histórica de México']
total_population_segmentation = total_population_segmentation.drop('Pos',axis=1)
total_population_segmentation = total_population_segmentation.sort_values('Entidad').reset_index().drop('index',axis=1)
Run Code Online (Sandbox Code Playgroud)

因此,我正在使用以下 DataFrame

    total_population_segmentation.head(5)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我用过total_population_segmentation.dtypes,我得到了

Entidad    object
2010       object
2015       object
2020       object
2025       object
2030       object
dtype: object
Run Code Online (Sandbox Code Playgroud)

我曾经pd.to_numeric(total_population_segmentation['2010'])检查它是否有效,但我得到了

ValueError                                Traceback (most recent call last)
pandas\_libs\lib.pyx in pandas._libs.lib.maybe_convert_numeric()

ValueError: Unable to parse string "1 195 787"

During handling of the above exception, another exception occurred:

ValueError …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
2255
查看次数

由于额外的键,to_datetime组装错误

我的熊猫版本是0.23.4。

我试图运行以下代码:

df['date_time'] = pd.to_datetime(df[['year','month','day','hour_scheduled_departure','minute_scheduled_departure']])  
Run Code Online (Sandbox Code Playgroud)

并且出现以下错误:

额外的键已传递给日期时间组合:[hour_scheduled_departure,minute_scheduled_departure]

关于如何通过pd.to_datetime完成工作的任何想法?

@ anky_91

在此图像中,显示了前10行的摘录。第一列[int32]:年份;第二列[int32]:月;第三栏[int32]:日期;第四栏[对象]:小时;第五列[对象]:分钟。对象的长度是2。

python pandas

4
推荐指数
1
解决办法
204
查看次数

将 labelImg XML 矩形转换为带有图像数据的 labelMe JSON 多边形

我已经在 labelImg 工具中对图像进行了注释,并以 XML 形式获得了注释。我需要将其转换为 LabelMe JSON 格式,并在其中编码 imageData。

样本输入:

输入图像

示例 XML:

<annotation>
    <folder>blocks</folder>
    <filename>sample_annotation.jpg</filename>
    <path>/path/sample_annotation.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>720</width>
        <height>540</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>cube</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>90</xmin>
            <ymin>87</ymin>
            <xmax>196</xmax>
            <ymax>194</ymax>
        </bndbox>
    </object>
    <object>
        <name>cube</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>498</xmin>
            <ymin>188</ymin>
            <xmax>607</xmax>
            <ymax>296</ymax>
        </bndbox>
    </object>
</annotation>
Run Code Online (Sandbox Code Playgroud)

所需的示例输出:


{'imageData': '/9j/2w.........../9k=',
 'imageHeight': 540,
 'imagePath': 'sample_annotation.jpg',
 'imageWidth': 720,
 'shapes': [{'group_id': None,
   'label': 'cube',
   'points': [[90, 87], [196, 194]],
   'shape_type': 'rectangle'},
  {'group_id': None,
   'label': 'cube',
   'points': [[498, 188], [607, 296]], …
Run Code Online (Sandbox Code Playgroud)

python xml opencv computer-vision pandas

4
推荐指数
1
解决办法
1580
查看次数