我正在研究 opencv 问题来找出哪些圆圈被填充。然而,有时圆圈的边缘是误报的原因。我想知道是否可以通过将 RGB 中具有高 R 值的所有像素变成白色来删除这些圆圈。我的方法是创建一个粉红色的像素蒙版,然后从原始图像中减去蒙版以删除圆圈。截至目前,我正在戴黑色面具。我做错事了。请指导。
rgb = cv2.imread(img, cv2.CV_LOAD_IMAGE_COLOR)
rgb_filtered = cv2.inRange(rgb, (200, 0, 90), (255, 110, 255))
cv2.imwrite('mask.png',rgb_filtered)
Run Code Online (Sandbox Code Playgroud)

我有以下代码,应该是
这里是
import cv2
import os
import random as rnd
outdir0='cancerdata\\0'
outdir1='cancerdata\\1'
readdir='sample'
j=0;
for dirs in os.listdir(readdir):
dpath=os.path.join(readdir,dirs)
for subdir in os.listdir(dpath):
fpath=os.path.join(dpath,subdir)
for file in os.listdir(fpath):
rfile=os.path.join(fpath,file)
image=cv2.imread(rfile,0)
size=rnd.randint(50,100)
img=cv2.resize(image,(size,size),interpolation=cv2.INTER_AREA)
print(img)
if subdir == '0':
wfile=os.path.join(outdir0,file)
cv2.imwrite(os.path.join(outdir0,file),img)
elif subdir == '1':
wfile=os.path.join(outdir1,file)
cv2.imwrite(os.path.join(outdir1,file),img)
Run Code Online (Sandbox Code Playgroud)
它不会给出错误,但由于某种原因不会保存任何文件。每当我尝试通过保存单个图像时
cv2.imwrite(r'sample\cancerdata\1\8865_idx5_x2101_y851_class1.png',img)
Run Code Online (Sandbox Code Playgroud)
我得到的都是假的。
#!/usr/bin/python3
import cv2
cam=cv2.VideoCapture(0)
Run Code Online (Sandbox Code Playgroud)
检查相机是否工作!
cam.isOpened():
print("Working")
while(cam.isOpened()):
status,frame=cam.read()
cv2.imshow('camera1',frame)
if cv2.waitKey(1) & 0xFF==ord('q') :
break
Run Code Online (Sandbox Code Playgroud)
通过调用下面的函数来删除窗口
如果我不写这个函数那么它也会正常运行!
cv2.destroyAllWindows()
cam.release()
Run Code Online (Sandbox Code Playgroud) 我第一次尝试使用 OpenCV for Python 3。要安装,我只需pip3 install opencv-python在终端中输入即可。当我这样做时,我在 Finder 中看到(我在 Mac 上),在 中/usr/local/lib/python3.7/site-packages,我现在有一个名为 的新文件夹"cv2"。
这很奇怪。为什么不是 cv3,因为我用的是 pip3?我不知道。
当我尝试import cv2从时python3,它说No module named 'cv2'。幸运的是StackOverflow 已经有了一个解决方案:如果我首先更改目录,例如:
cd /usr/local/lib/python3.7/site-packages
然后我就可以打开了cv2。我不知道为什么OpenCV需要这一步。import numpy例如,我不必这样做;numpy不关心我从哪个目录开始,它就像另一个模块一样列出,例如 cv2.
无论如何,我将目录更改为site-packages、 start python3,然后我import cv2. 现在出现了新的错误。这次cv2找到了,但是它说:
from .cv2 import *
ModuleNotFoundError: No module named 'cv2.cv2'
Run Code Online (Sandbox Code Playgroud)
作为记录,我还有 Python 2.7。如果我尝试cd /usr/local/lib/python2.7/site-packages然后启动 Python 2.7,我可以导入cv2. 这没问题,但我想将 …
当我尝试使用 cv2.imshow() 时,收到一条错误消息,指出它无法连接到 X 服务器。我在本地运行此程序,在 Windows 命令提示符中使用 bash。没有服务器、没有VPN等。
Python 3.4、CV2 3.4
img = cv2.imread(fileName)
cv2.imshow("Image", img)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud) 我有一个 numpy 数组字符串,它是通过使用转换的numpy.array2string
现在,我想要回我的 numpy 数组。
对我如何实现它有什么建议吗?
我的代码:
img = Image.open('test.png')
array = np.array(img)
print(array.shape)
array_string = np.array2string(array, precision=2, separator=',',suppress_small=True)
Run Code Online (Sandbox Code Playgroud)
PS 我的数组是3D数组而不是 1D 并且我使用,分隔符,而不是默认的空白
我需要使用 GStreamer 将数据传递到一些 OpenCV/Cuda 分类和深度学习系统。
问题是我对 GStreamer 和 Cuda 很陌生,所以我需要制作一些简单的示例,结合尽可能少的元素 - 这里是 OpenCV 和 Gstreamer。
cv.imshow()现在我只希望 GStreamer在循环中将“videotestsrc pattern=ball”传递到一帧一帧
问题是我似乎无法打开该cv.VideoCapture()元素 - 正确地因为管道错误
我已经花了几个小时了,现在已经“放弃”了
OpenCV 是 v3.4.0 - 使用 GStreamer 支持编译 Python 是 3.6.8
这是我现在的代码 -
我用谷歌搜索了一遍,并尝试了许多管道组合,但没有任何东西能让我打开视频捕获元素
#!/usr/bin/env python3
import cv2 as cv
cap = cv.VideoCapture("videotestsrc ! video/x-raw,framerate=20/1 ! appsink", cv.CAP_GSTREAMER)
# Commented out to continue to capture
# Evaluates true => app closes
#if not cap.isOpened():
# print('VideoCapture not opened')
# exit(0)
while(True):
ret, frame = cap.read()
print(ret) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 OpenCV 在 kivy 应用程序中创建视频上传器。但是,当我尝试上传视频时,出现以下错误
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000021c356d9e00] moov atom not found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000021c356d9e00] moov atom not found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000021c356d9e00] moov atom not found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000021c356d9e00] moov atom not found
...
Run Code Online (Sandbox Code Playgroud)
在此期间屏幕变得无响应。我最近编辑了 save() 函数并添加了 uploadClass() 因为我收到了另一个错误。
主要.py
...
class SaveDialog(Screen):
save = ObjectProperty(None)
text_input = ObjectProperty(None)
cancel = ObjectProperty(None)
def save(self, path, filename):
for letter in os.path.join(path, filename):
print(letter)
def find(s, ch):
return [i for i, letter in enumerate(s) if letter == ch]
os_path_simpl = list(os.path.join(path, filename)) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用计算机视觉从 pdf/图像发票中提取数据。为此,我使用了基于 ocr 的 pytesseract。\n这是示例发票\n
\n您可以在下面找到相同的代码
import pytesseract\n\n\nimg = Image.open("invoice-sample.jpg")\n\ntext = pytesseract.image_to_string(img)\n\nprint(text)\nRun Code Online (Sandbox Code Playgroud)\n通过使用 pytesseract 我得到以下输出
\nhttp://mrsinvoice.com\n\n \n\n\xe2\x80\x99 Invoice\n\nYour Company LLC Address 123, State, My Country P 111-222-333, F 111-222-334\n\n\nBILLTO:\n\nfofin Oe Invoice # 00001\n\nAlpha Bravo Road 33 Invoice Date 32/12/2001\n\nP: 111-292-333, F: 111-222-334\n\nclient@example.net Nomecof Reps Bob\nContact Phone 101-102-103\n\nSHIPPING TO:\n\neine ce Payment Terms ash on Delivery\n\nOffice Road 38\nP: 111-333-222, F: 122-222-334 Amount Due: $4,170\noffice@example.net\n\nNO PRODUCTS / SERVICE QUANTITY / RATE / UNIT AMOUNT\nHOURS: PRICE\n\n1 tye 2 $20 $40\n\n2__| Steering …Run Code Online (Sandbox Code Playgroud) python ocr tesseract python-imaging-library document-layout-analysis
我正在使用PIL和OpenCV包加载图像。使用 加载图像时的高度和宽度与使用 加载图像时的高度和宽度相反。以下是打印使用这两个包加载的图像的高度和宽度的代码。PILcv2
file = \'conceptual_captions/VL-BERT/data/conceptual-captions/val_image/00002725.jpg\'\n# load image using PIL\nimport PIL.Image\npil = PIL.Image.open(file).convert(\'RGB\')\nw, h = pil.size\nprint("width: {}, height: {}".format(w, h))\nRun Code Online (Sandbox Code Playgroud)\n打印输出\nwidth: 1360, height: 765
# now using cv2\nimport cv2\nim = cv2.imread(file)\nprint("height, width, channels: {}".format(im.shape)) \nRun Code Online (Sandbox Code Playgroud)\n打印输出height, width, channels: (1360, 765, 3)
我下载了图像并使用 Mac 上的信息选项检查了图像的大小。信息有width = 765和height =\xe2\x80\x8a1360,与方法报告的相同cv2。为什么PIL给出错误的图像尺寸?
当图像非常少时就会出现此问题。我链接的图像就是这样的一张图像。对于其余图像,PIL和报告的高度和宽度cv2是相同的。