Swift iOS-Vision框架文本识别和矩形
我试图在使用视觉框架找到的文本区域上绘制矩形,但它们总是有点偏离.我这样做: public func drawOccurrencesOnImage(_ occurrences: [CGRect], _ image: UIImage) -> UIImage? { UIGraphicsBeginImageContextWithOptions(image.size, false, 0.0) image.draw(at: CGPoint.zero) let currentContext = UIGraphicsGetCurrentContext() currentContext?.addRects(occurrences) currentContext?.setStrokeColor(UIColor.red.cgColor) currentContext?.setLineWidth(2.0) currentContext
6 2023-06-03
编程技术问答社区
OpenCV 3.0 无法加载神经网络
我需要在我的OpenCV(版本3.0)项目中使用神经网络.我已经创建和训练了神经网络,并且可以正常工作,但是如果我想从yml文件加载神经网络,它就无法预测. 这是我创建,训练和保存我的神经网络的代码: FileStorage fs("nn.yml", FileStorage::WRITE); int input_neurons = 7; int hidden_neurons = 100; int output_neurons = 5; Ptr train_data = TrainData::loadFromCSV("data.csv", 10, 7, 12); Ptr neural_network = ANN_MLP::create(); neural_network->setTrainMethod(ANN_MLP::BACKPROP); neural_network->setBackpropMomentumScale(0.1);
0 2023-05-10
编程技术问答社区
OpenCV计算距离(立体视觉)
对于我的项目,我正在使用下一个代码的一部分:链接. 要跟踪特定颜色的对象,我实现了此方法: 我的问题是:如何计算到跟踪的彩色对象的距离? 预先感谢您! *该应用程序调用左右帧的方法.这不是有效的... **我需要计算destedboct.zcor DetectedObject Detect(IplImage *frame) { //Track object (left frame and right frame) //Calculate average position //Show X,Y,Z coordinate and detected color color_image = frame; imgThreshold = cvCreateImage(cvSize(color_image->width,color_image->height), IPL_DEPTH_8U, 1); cvInitFont(&font, CV_FONT_HERSHEY
2 2023-05-10
编程技术问答社区
以指定的时间间隔记录视频,然后将其保存到文件中 OpenCv Python
这是我的目标. 连续捕获视频直到'q;按下 每十秒钟将视频保存在创建的目录文件中 继续第二步,直到按下" Q" 我正在执行以下代码.但是,当创建文件时,它正在创建6KB文件,并说无法播放.我是OpenCV和Python的新手.不知道我缺少什么.使用Python 3.6在Pycharm上运行此代码.还有 cv2.imshow('frame',frame) 十秒钟后停止,但记录在背景中发生,并创建了文件. import numpy as np import cv2 import time import os import random import sys fps=24 width=864 height=640 video_codec=cv2.VideoWriter_fourcc('D','I','V','X') name = random.randint(0,1000) print (name) if (os.path.isdir(str(name)
0 2023-05-10
编程技术问答社区
在OpenCV中检测不完整的矩形(缺角/短边)。
我一直在处理openCV平方样品的变体以检测矩形.它对封闭的矩形工作正常,但是我想知道我可以采用哪种方法来检测带有开口的矩形,即缺少拐角,线太短. 我执行一些扩张,这会缩小较小的间隙,但没有这些较大的间隙. 我考虑使用凸壳或边界rect生成轮廓进行比较,但是由于矩形的边缘被断开,每个矩形的边缘都将读为单独的轮廓. 我认为第一步是检测哪些线是形成完整矩形的候选者,然后执行某种直线外推.此似乎很有希望 . 我正在尝试检测此图像中的三个最左边的矩形: 解决方案 也许本文很感兴趣? 基本上,采用图像的霍夫线变换.您将在(theta,rho)空间的位置获得与有线路的地方有关的位置.值越大,线路的越长/更直.也许要阈值只能获得最好的线条.然后,我们试图寻找 的一对线 1)平行:最大值发生在类似的theta值 时 2)相似的长度:最大值的值相似 3)与另一对线的正交:theta值距离其他对的theta值 相距90度 论文中还有更多细节,例如在滑动窗
0 2023-05-10
编程技术问答社区
检测测试盒式上的线OPENCV
(在C处有一条实线,在T处有一个微弱的线) 我想检测到T处的线.目前,我正在使用OpenCV定位QR码并旋转图像,直到QR码直立为止.然后,我使用QR码的坐标来计算C和T标记的大致位置.然后,我的代码将沿着y轴向下扫描并检测到绿色和蓝色值的差异. 我的问题是,即使T线如图所示,它也应被视为正.我怎么能做一个更好的检测? 解决方案 我只是裁剪了白色条,因为我假设您已经找到了它.由于我们正在寻找红色,所以我更改为实验室Colorspace,并在" A"频道上查看. 注意:脱衣舞的所有图像均已转移(np.transpose)以查看便利性,在代码中不是那样的方式. A通道 我做了一个线性重框以改善对比度 图像超级嘈杂.同样,我不确定这是来自相机还是JPG压缩.我平均每行以平滑一些胡说八道. 我绘制了强度(x-vals是行索引) 使用平均过滤器平滑图 我运行了登山者算法来寻找山峰和山谷 ,然后我过滤了峰值大于10的峰(第二高峰的攀
2 2023-05-10
编程技术问答社区
在二值化的图像中分离出交叉点段
我有一些图像处理,使我可以提取包含厚段的二进制图像,并且我面临着这些段可能会跨越彼此的问题.因此,我需要找到一种有效的方法将它们分开,我必须在C ++中实现它,以便基于OpenCV的任何东西都会有所帮助. 这是一个样本输入图像,两个"斑点"都需要在3个不同的段中分开. 我已经尝试了两个想法,直到现在,我都陷入了困境,这就是为什么我在这里问这里是否有"最先进的问题"解决方案. 我的第一个想法是计算斑点的骨骼,找到相交点.这部分很容易.然后,我计划从终点开始,穿过该细分市场,直到到达交叉点并"跨越相交".如果您看底部的斑点,即使预期" t"形状,骨骼也会产生怪异的" y"形状,从而无法决定如何穿越十字路口. 第二个想法是计算距离变换,然后是梯度方向,然后我仍然需要一种方法来合并具有相似方向的像素和处理端点/相交的方法. 解决方案 使用骨骼是个好主意,因为这将使处理与中风宽度无关.在交界处附近,骨骼受到干扰,以使方向在局部发生变化. 您可以考虑一个骨骼并在接线
0 2023-05-10
编程技术问答社区
人眼目光检测:确定用户在板上的位置
我正在从事一个项目,在该项目上面有板和相机.目的是确定正在查看董事会的学生,并确定视力的位置(在董事会上). 目前,我计划在以下部分面对挑战: 识别学生的面孔 从检测到的脸上识别他们的双眼的ROI 确定他们的眼睛学生/虹膜中心的位置和头姿势 确定该人是否正在看董事会? 如果是,学生正在查看董事会的哪个区域? 到目前为止,我能够做以下事情: 识别面部和眼球标记和面部位置向量(x,y,z) 以下是代码: from scipy.spatial import distance as dist from imutils.video import FileVideoStream from imutils.video import VideoStream from imutils import face_utils from gaze_codefiles import get_head_pose,draw_border,iris_center import
2 2023-05-10
编程技术问答社区
使用OpenCV检测停车位
我试图使用OpenCV自动找到并在空停车场找到所有停车位. 目前,我有一个阈值,可用于图像,应用chany边缘检测,然后使用概率的霍夫线来找到标记每个停车位的线. 然后该程序绘制构成线路的线和点 这是代码: #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include using namespace cv; using namespace std; int threshold_value = 150; int threshold_type = 0;; int const max_value = 255; int const max_type = 4; int const max_BINARY_value = 255; int houghthresh = 50; char* trackbar_value = "Value";
2 2023-05-10
编程技术问答社区
带有立体三维重建的OpenCV
说我计划使用立体声方法使用OpenCV进行3D重建...而且我没有任何特殊的立体声摄像头,而只有网络摄像头. 1.)如何使用一组Web摄像头构建便宜的立体声设置? 2.)是否可以使用Web Cams拍摄两个图像,并使用OpenCV API转换为立体声? 我将使用下面链接的立体声算法 with opencV 使用这种方法,我想创建室内环境的详细映射. (我不想使用任何项目之类的项目,而没有分发源代码就无法用于商业目的) 解决方案 您可以在这里找到很多资源资源/" rel =" noreferrer">教程和立体声摄像机 其他解决方案 首先,确保您的网络摄像头没有任何内置自动对焦技术.由于相机应具有固定焦距. 1)在规范配置中与基线距离变化的摄像机对齐.然后使用OpenCV的stereo_calib.cpp程序对其进行校准.通常,距离为20-60厘米.对于某些网络摄像机,甚至10厘米都可以为您带来更好的结果.如果RMS错误和再投影错误小于0.5,则可以
2 2023-05-10
编程技术问答社区
使用Python的工业视觉相机
是否有任何带有Python接口的工业计算机视觉摄像头,或者具有发达的第三方解决方案? 我一直在使用网络摄像头进行一些工作,例如,通过OpenCV可以访问它们.但是,现在我需要一台更强和灵活的相机.我需要能够设置某些参数,例如曝光和增益.我想尽可能避免使用其他语言来开发python,因为python是我最了解的. 我已经看到了诸如UEYE摄像机的Pyueye之类的插件,除了在Windows中无法正常工作. 解决方案 不确定为什么要投票.无论如何,我是核心SimpleCV( http://simplecv.org )开发人员,每天使用工业摄像头.我们对盟军视觉摄像机和Ximea摄像机有整合的支持. 如果您安装了驱动程序,则实际上很容易: cam = AVTCamera() cam = Camera('ximea') 至于XIMEA摄像机,您需要安装软件随附的XIMEA摄像机驱动程序,然后使用flag 构建openCV cmake -DWITH_XIME
0 2023-05-10
编程技术问答社区
OpenCV: 使用cvGoodFeaturesToTrack和C++ mat变量
我试图将Visual Studio 2010中的cvGoodFeatureToTrack函数与Mat的图像类型一起使用.我见过的大多数示例都使用IplImage指针. 现在我有: int w, h; // video frame size Mat grayFrame; Mat eigImage; Mat tempImage; const int MAX_CORNERS = 10; CvPoint2D32f corners[MAX_CORNERS] = {0}; int corner_count = MAX_CORNERS; double quality_level = 0.1; double min_distance = 10; int eig_block_size = 3; int use_harris = false; w = CurrFrame.size().width; h = CurrFrame.size().height; cvtColor(CurrFrame, g
0 2023-05-09
编程技术问答社区
如何从Python中的大图片中提取图片
有一个很大的图像. 我只想在大图像中提取矩形图片. 大图像质量很差.因此,您不能仅使用特定的RGB,并且背景可能不是白色. 我如何做 阈值图像到单独的背景区域和照片部分. 问题是无法随机修复每个图片颜色的阈值(背景是白色的,但图片是浅灰色的背景接近白色). 使用OpenCV2轮廓区域查找矩形. 问题是每张图片的颜色是随机的,这使得无法找到矩形区域. 如何切出图片? 解决方案 import cv2 image = cv2.imread('image.jpg', cv2.IMREAD_UNCHANGED) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5)) gradient = cv2.morphologyEx(gray, cv2.MORPH_GRADIENT, kernel) contours
6 2023-05-09
编程技术问答社区
OpenCV 2.3相机校准
我正在尝试使用OpenCV 2.3 python绑定来校准相机.我已经在MATLAB中使用了以下数据,并且校准工作可行,但是我似乎无法在OpenCV中使用.摄像机矩阵I设置为初始猜测非常接近从MATLAB工具箱中计算出的答案. import cv2 import numpy as np obj_points = [[-9.7,3.0,4.5],[-11.1,0.5,3.1],[-8.5,0.9,2.4],[-5.8,4.4,2.7],[-4.8,1.5,0.2],[-6.7,-1.6,-0.4],[-8.7,-3.3,-0.6],[-4.3,-1.2,-2.4],[-12.4,-2.3,0.9], [-14.1,-3.8,-0.6],[-18.9,2.9,2.9],[-14.6,2.3,4.6],[-16.0,0.8,3.0],[-18.9,-0.1,0.3], [-16.3,-1.7,0.5],[-18.6,-2.7,-2.2]] img_points = [[99
2 2023-05-09
编程技术问答社区
估计图像的亮度 Opencv
我一直在尝试获得OpenCV中的图像亮度,到目前为止,我已经使用了Calchist并考虑了直方图值的平均值.但是,我觉得这是不准确的,因为它实际上并不能确定图像的亮度.我在图像的灰度版本上执行了卡拉斯特,并试图区分从明亮的图像获得的平均值上的平均值.到目前为止,我还没有成功.您能否通过OPENCV来帮助我使用方法或算法来估计图像的亮度?预先感谢. 解决方案 我想, hsv color Model 将在您的问题中有用,其中频道V为值: "值是颜色的亮度,随着颜色饱和度而变化.它的范围从0到100%.当值为'0'时,颜色空间将完全黑.随着值的增加,颜色空间增加亮度升起并显示各种颜色." 因此,请使用opencv方法 ,cvarr* dst,int代码),将图像从一个颜色空间转换为另一个颜色空间.在您的案例中,代码= cv_bgr2hsv.than计算第三通道v. 的直方图 其他解决方案 我要问同样的问题,但随后发现,类似的问题没有给出令人满意的答案.我发现的所有答案
2 2023-05-09
编程技术问答社区
是否可以从virtualenv中运行opencv(python绑定)?
我想将所有内容保留在Virtualenv中. OpenCV是否可以?我可以从头开始构建,我是否只需要先设置Virtualenv,然后使用特殊的编译标志来告诉它在哪里安装? 解决方案 我发现解决方案是我必须通过cv2.so和cv.py复制到运行Virtualenv的目录,然后pip instal numpy.为了在ubuntu 12.04上这样做. virtualenv virtopencv cd virtopencv cp /usr/local/lib/python2.7/dist-packages/cv* ./lib/python2.7/site-packages/ ./bin/pip install numpy source bin/activate python import cv 其他解决方案 来自Opencv 安装指南: 默认情况下,OPENCV构建系统将选择可以找到的Python的最新版本,或者您可以在调用CMAKE时强迫使用Python_execu
8 2023-05-09
编程技术问答社区
用OpenCV检测表格
我经常使用扫描的论文.这些论文包含表(类似于Excel表),我需要手动输入计算机.为了使任务更糟,表可以是不同数量的列.至少可以说,手动进入Excel是平凡的. ,如果我可以放一个程序来进行OCR,我认为我可以节省一周的工作.是否可以使用OPENCV检测标题文本区域,并在检测到的图像坐标背后进行OCR. 我可以在OpenCV的帮助下实现这一目标,还是需要完全不同的方法? 编辑:示例表实际上只是一个标准表,类似于您在Excel和其他扩展表应用程序中可以看到的表格,请参见下文. 解决方案 这个问题似乎有点老了,但我也在研究类似的问题,并得到了我自己在这里解释的解决方案. 用于使用任何OCR引擎读取文本的良好精度有许多挑战,其中包括以下主要情况: 背景区域中图像质量/不需要的元素/斑点引起的噪声的存在.这将需要一些预处理的噪声,可以使用高斯滤波器或普通中值滤波器方法轻松完成.这些也可以在 opencv . 图像的错误方向:由于定向错误,OCR引擎无法
14 2023-05-09
编程技术问答社区
在iPhone上可以实时识别数字吗?
我需要实时从iPhone上的相机图像中识别数字.我知道图像上的数字不超过5位. 鉴于iPhone的计算规格,解决这个问题是现实的吗? 有人使用Tesseract OCR库有任何经验,您认为可以通过使用它来解决它吗? 解决方案 取决于您对"实时"的定义,但是是的,应该可以相对快速地识别iPhone 4上的数字0-9,尤其是如果您可以字体,点亮条件等等.它们将出现在. 我强烈建议您阅读 sudoku Grab如何如何使用iPhone摄像头认识到难题.在他们的情况下,使用训练有素的神经网络来识别数字,这在现代iOS硬件上应该相当简单,快速. 当前的识别库,例如OpenCV,将使用iPhone的CPU进行处理.我听说他们可以快速执行更复杂的任务,例如面部识别能够快速使用视频源,同时显示出最少的口吃. 为了更好的性能,我相信在较新的iOS设备上可编程的GPU具有很大的潜力.在我的基准标准使用iPhone 4的GPU进行简单的图像处理时,看到14倍-28倍的加速.尽管
6 2023-05-07
编程技术问答社区
如何在基于tensorflow lite对象检测的android应用程序中添加文本-语音?
我正在尝试构建一个应用程序,该应用程序将帮助视觉障碍的人以自己的方式检测对象/障碍.因此,使用TensorFlow库和Android文本到语音,一旦检测到对象,该应用程序将使用户知道对象是什么.我目前正在尝试构建TensorFlow提供的Android对象检测示例,但是我很难找到存储边界框标签的字符串的位置,以便在运行文本到语音语音时可以称呼它 解决方案 我看到了对象检测的项目.您可以在项目内两个地方找到推断的结果: 首先,您可以在 内找到它们 TFLiteObjectDetectionAPIModel.java 在那里您可以在line 227 for > 识别对象 例如 Log.i("Recognitions", String.valueOf(recognitions.get(0).getTitle())); 第二 DetectorActivity.java 您可以记录 结果对象 在line 然后,您可以按照进行此示例进
0 2023-05-03
编程技术问答社区
如何在3D空间中对一个点进行三角测量,给定2个图像中的坐标点和相机的外部值
我试图写一个函数,当给出两个摄像机时,它们的旋转,翻译矩阵,焦点和每个相机的点的坐标将能够将点分为3D空间.基本上,鉴于所需的所有外部/内在值 我很熟悉一个总体想法:以某种方式创建两个射线并找到满足最小二乘问题的最接点,但是,我不知道如何确切地将给定信息转换为一系列方程式3D中的坐标点 解决方案 我的旅程迟到了几年.我遇到了完全相同的问题,发现几个人问相同的问题,但从未找到一个足够简化的答案,我花了几天的时间学习这些东西,以便我可以将其简化为必需品并发布我发现的内容在这里为未来的人提供. 最后,我还会给您一些代码示例,以便在Python中做您想做的事,所以请坚持下去. 我手写笔记的一些屏幕截图,这些屏幕截图解释了完整的过程. 第1页. 第2页. 这是我开始的方程docs.opencv.org/master/d9/d0c/group__calib3d.html 在两个摄像机中选择一个相同的现实世界中的来源后,您将具有相同的x,y,z值的两个方程式.
22 2023-05-01
编程技术问答社区