-
使用opencv报错,尝试安装依赖却报错IniParser: Can't open fileError: There are no enabled repos求方法
-
按照https://gitee.com/ascend/samples/blob/master/cplusplus/environment/opencv_install/README_200DK_CN.md这个方法进行安装,前面都是正常执行,执行make -j8 到92%时出现两处错误,请专家帮忙指点一下,谢谢了!往上翻发现是以下错误。
-
参考https://gitee.com/ascend/samples/blob/master/cplusplus/environment/opencv_install/README_200DK_CN.md安装ffmpeg+opencv,第一步的安装依赖包出现如下错误,然后根据https://bbs.huaweicloud.com/forum/thread-74123-1-1.html进行配置还是出现如下错误。请专家帮忙指导一下,谢谢!
-
OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于BSD许可[1] (开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。[2] 最新版本是3.3 ,2017年8月3日发布[3] 。OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。OpenCV 为Intel® Integrated Performance Primitives (IPP) 提供了透明接口。 这意味着如果有为特定处理器优化的 IPP 库, OpenCV 将在运行时自动加载这些库。(注:OpenCV 2.0版的代码已显著优化,无需IPP来提升性能,故2.0版不再提供IPP接口)OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.无论你是做科学研究,还是商业应用,opencv都可以作为你理想的工具库,因为,对于这两者,它完全是免费的。该库采用C及C++语言编写,可以在windows,linux,macOSX系统上面运行。该库的所有代码都经过优化,计算效率很高,因为,它更专注于设计成为一种用于实时系统的开源库。opencv采用C语言进行优化,而且,在多核机器上面,其运行速度会更快。它的一个目标是提供友好的机器视觉接口函数,从而使得复杂的机器视觉产品可以加速面世。该库包含了横跨工业产品检测、医学图像处理、安防、用户界面、摄像头标定、三维成像、机器视觉等领域的超过500个接口函数。同时,由于计算机视觉与机器学习密不可分,该库也包含了比较常用的一些机器学习算法。或许,很多人知道,图像识别、机器视觉在安防领域有所应用。但,很少有人知道,在航拍图片、街道图片(例如googlestreetview)中,要严重依赖于机器视觉的摄像头标定、图像融合等技术。近年来,在入侵检测、特定目标跟踪、目标检测、人脸检测、人脸识别、人脸跟踪等领域,opencv可谓大显身手,而这些,仅仅是其应用的冰山一角。如今,来自世界各地的各大公司、科研机构的研究人员,共同维护支持着opencv的开源库开发。这些公司和机构包括:微软,IBM,索尼、西门子、google、intel、斯坦福、MIT、CMU、剑桥。。。。
-
【功能模块】【操作步骤&问题现象】1、MDS C++环境无法使用opencv库,应该怎么将openCV部署到MDS上【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
tare@tedu:~/opencv-4.1.1/build$ cmake -DCMAKE_INSTALL_PREFIX=/home/tarena/opencv -DCMAKE_TOOLCHAIN_FILE=/home/tarena/Euler.cmake -DWITH_WEBP=OFF -DBUILD_opencv_world=ON 出现错误:CMake Error: The source directory "/home/tare/opencv-4.1.1/build" does not appear to contain CMakeLists.txt. 根据要求把主目录下CMakeLists.txt 放入build中,再进行编译出现错误为: CMake Error at CMakeLists.txt:11 (message): FATAL: In-source builds are not allowed. You should create a separate directory for build files.根据百度查找,删掉bulid文件夹下的CMakeCache.txt,再一次进行编译,依然报错为:CMake Error at CMakeLists.txt:11 (message): FATAL: In-source builds are not allowed. You should create a separate directory for build files.而且会在build下生成CMakeCache.txt文件。并且我也尝试过编译opencv-3.4.6,同样的问题。https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=123012
-
【功能模块】【操作步骤&问题现象】1、执行 make -j8 出现如下图问题 且一直再循环2、执行 make install 也出现上述问题3、在 vim /etc/ld.so.conf.d/ffmpeg.conf 打开是空的在执行cp /home/HwHiAiUser/ascend_ddk/arm/lib/pkgconfig/* /usr/share/pkgconfig 时没找到该路径下的pkgconfig环境变量已配置export LD_LIBRARY_PATH=/home/HwHiAiUser/ascend_ddk/arm/lib:/home/HwHiAiUser/Ascend/acllib/lib64:$LD_LIBRARY_PATHexport PYTHONPATH=/home/HwHiAiUser/Ascend/pyACL/python/site-packages/acl:$PYTHONPATH感谢【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
'''import cv2import numpy as npfrom PIL import Image, ImageDraw, ImageFontimport matplotlib.pyplot as plt#用于给图片添加中文字符的函数def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20): # 判断是否OpenCV图片类型 if (isinstance(img, np.ndarray)): img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 创建一个可以在给定图像上绘图的对象 draw = ImageDraw.Draw(img) # 字体的格式 fontStyle=ImageFont.truetype("font/simsun.ttc",textSize, encoding="utf-8") # 绘制文本 draw.text((left, top), text, textColor, font=fontStyle) # 转换回OpenCV格式 return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)# plt绘图显示中文plt.rcParams['font.family'] = 'SimHei'img0 = cv2.imread(r"C:\Users\pc\Desktop\0.bmp")cv2.imshow('img', img0)# 彩色图转灰度图img1 = cv2.cvtColor(img0, cv2.COLOR_BGR2GRAY)# 缺陷检测for i in range(1, 6): defect_img0 = cv2.imread(r"C:\Users\pc\Desktop\%d.bmp"%i) # 获取灰度图像 defect_img1 = cv2.cvtColor(defect_img0, cv2.COLOR_BGR2GRAY) # 获取原图像的灰度直方图 hist0 = cv2.calcHist([img1], [0], None, [256], [0.0, 255.0]) # 获取待检测图像的灰度直方图 hist1 = cv2.calcHist([defect_img1], [0], None, [256], [0.0, 255.0]) # 为图像添加标题 plt.title("原图与待检测img%d对比"%i) # 添加图例 plt.plot(hist0, label='原图') plt.plot(hist1, label='待检测img%d'%i) # 相似度比较 rst = cv2.compareHist(hist0, hist1, method=cv2.HISTCMP_CORREL) # res >= 0.95即认为合格 cv2.imshow(str(i) + ".img", cv2ImgAddText(defect_img0, "合格" if rst >= 0.95 else "不合格", 20, 20, (255, 0, 0), 25)) # 设置x轴的数值范围 plt.xlim([0, 256]) plt.legend(loc='upper left') plt.show()cv2.waitKey(0)
-
据说,现在很多小区都上线了AI抓拍高空抛物的黑科技,可以自动分析抛物轨迹,用来协助检查很多不文明行为。你想不想知道,这类检测视频中目标物的黑科技是怎么实现的呢?虽然不同场景下的目标检测模型训练不同,但底层技术都是一样的。思路:读取视频流,载入模型,执行推理,找出所有目标及其位置,最后绘制检测结果。步骤略。总结:YOLOv4的检测精度优于YOLOv4-tiny。经GPU 加速后,模型推理速度明显提升,YOLOv4 的推理速度提高了约10倍,YOLOv4-tiny的推理速度提高了约4.8倍。
-
按照《aarch64 架构 linux 服务器软件编译与部署指南》进行tare@tedu:~/opencv-3.4.6/build$ cmake --versioncmake version 3.19.8CMake suite maintained and supported by Kitware (kitware.com/cmake).tare@tedu:~/opencv-3.4.6/build$ cmake -DCMAKE_INSTALL_PREFIX=/home/tarena/opencv -DCMAKE_TOOLCHAIN_FILE=/home/tarena/Euler.cmake -DWITH_WEBP=OFF -DBUILD_opencv_world=ON出现错误:根据要求把CMakeLists.txt 放入build中,再次编译出现?Atlas500的版本在虚拟机上安装的希望能帮忙解决,非常感谢!!!!
-
【功能模块】git clone https://github.com/ultralytics/yolov5/releasescd releasespip3.7.5 install requirementx.txt【操作步骤&问题现象】1、HwHiAiUser@davinci-mini:~/Yolov5_for_Pytorch/yolov5$ pip3.7.5 install -r requirements.txt Looking in indexes: http://mirrors.aliyun.com/pypi/simple/Collecting matplotlib>=3.2.2 (from -r requirements.txt (line 4)) Downloading http://mirrors.aliyun.com/pypi/packages/84/61/28711c7773a3a47c7f798cafc219968aab78d260c0d674696a077432bbd4/matplotlib-3.4.1.tar.gz (37.3MB) |████████████████████████████████| 37.3MB 4.9MB/s Requirement already satisfied: numpy>=1.18.5 in /home/HwHiAiUser/.local/lib/python3.7/site-packages (from -r requirements.txt (line 5)) (1.19.4)Collecting opencv-python>=4.1.2 (from -r requirements.txt (line 6)) Downloading http://mirrors.aliyun.com/pypi/packages/bb/08/9dbc183a3ac6baa95fabf749ddb531bd26256edfff5b6c2195eca26258e9/opencv-python-4.5.1.48.tar.gz (88.3MB) |████████████████████████████████| 88.3MB 5.6MB/s Installing build dependencies ... |2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【功能模块】【操作步骤&问题现象】1、通过官方camera.py脚本读取的数据流如何转换才能使用opencv处理2、读出的数据显示为atlas_utils.acl_image.AclImage object at 0xfffed05ed588【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
OpenCV发行版4.5.1包含了BEBLID,这是一个新的本地特性描述符。opencv4.5.1中最令人兴奋的特性之一是BEBLID(Boosted effective Binary Local Image Descriptor),它是一种新的描述符,能够在减少执行时间的同时提高图像匹配精度!本文将向你展示一个具体的例子,所有源代码都存储在此GitHub存储库中:https://github.com/iago-suarez/beblid-opencv-demo/blob/main/demo.ipynb在这个例子中,我们将通过一个视角的改变来匹配这两个图像:首先,确保安装了正确版本的OpenCV。在你喜爱的环境中,你可以使用以下工具安装和检查OpenCV Contrib版本:pip install "opencv-contrib-python>=4.5.1"python>>> import cv2 as cv>>> print(f"OpenCV Version: {cv.__version__}")OpenCV Version: 4.5.1在Python中加载这两个图像所需的代码是:import cv2 as cv# Load grayscale imagesimg1 = cv.imread("graf1.png", cv.IMREAD_GRAYSCALE)img2 = cv.imread("graf3.png", cv.IMREAD_GRAYSCALE)if img1 is None or img2 is None: print('Could not open or find the images!') exit(0)为了评估我们的图像匹配程序,我们需要在两幅图像之间进行正确的几何变换。这是一个称为单应性的3x3矩阵,当我们将第一个图像中的一个点(在齐次坐标中)相乘时,它将返回第二个图像中该点的坐标。让我们加载它:# Load homography (geometric transformation between image)fs = cv.FileStorage("H1to3p.xml", cv.FILE_STORAGE_READ)homography = fs.getFirstTopLevelNode().mat()print(f"Homography from img1 to img2:\n{homography}")下一步是检测图像中容易在其他图像中找到的部分:局部图像特征。在这个例子中,我们将用一个快速可靠的探测器ORB来检测角点。ORB通过比较不同尺度下的角点来检测强角点,并利用FAST或Harris响应来选择最佳的角点,同时它还使用局部分块的一阶矩来确定每个角点的方向。允许在每个图像中检测最多10000个角点:detector = cv.ORB_create(10000)kpts1 = detector.detect(img1, None)kpts2 = detector.detect(img2, None)在下图中,你可以看到用绿点标记的检测响应最强的500个角点特征:现在使用该方式来表示这些关键点,我们可以在另一幅图中找到它们,这一步称为描述,因为每个角点附近的局部分块中的纹理由来自图像上不同操作的数字向量表示(即描述)。有很多描述符,但如果我们想要一些准确的东西,即使在移动电话或低功耗设备上也能实时运行,OpenCV有两种重要的方法:ORB(Oriented FAST and Rotated BRIEF):一个经典的替代品,已经有10年的历史了,效果相当不错。BEBLID(Boosted effective Binary Local Image Descriptor):2020年推出的一种新的描述符,在多个任务中被证明可以提高ORB。由于BEBLID适用于多种检测方法,因此必须将ORB关键点的比例设置为0.75~1。# Comment or uncomment to use ORB or BEBLIDdescriptor = cv.xfeatures2d.BEBLID_create(0.75)# descriptor = cv.ORB_create()kpts1, desc1 = descriptor.compute(img1, kpts1)kpts2, desc2 = descriptor.compute(img2, kpts2)现在是时候匹配两幅图像的描述符来建立对应关系了。让我们使用暴力算法,基本上比较第一个图像中的每个描述符与第二个图像中的所有描述符。当我们处理二进制描述符时,比较是用汉明距离来完成的,也就是说,计算每对描述符之间不同的位数。这里还使用了一个称为比率测试的小技巧,它不仅确保描述符1和2彼此相似,而且没有其他描述符像2那样接近1。matcher = cv.DescriptorMatcher_create(cv.DescriptorMatcher_BRUTEFORCE_HAMMING)nn_matches = matcher.knnMatch(desc1, desc2, 2)matched1 = []matched2 = []nn_match_ratio = 0.8 # Nearest neighbor matching ratiofor m, n in nn_matches: if m.distance < nn_match_ratio * n.distance: matched1.append(kpts1[m.queryIdx]) matched2.append(kpts2[m.trainIdx])因为我们知道正确的几何变换,所以让我们检查有多少匹配是正确的(inliers)。如果图2中的点和从图1投射到图2的点距离小于2.5像素,我们将认为它是有效的。inliers1 = []inliers2 = []good_matches = []inlier_threshold = 2.5 # Distance threshold to identify inliers with homography checkfor i, m in enumerate(matched1): # Create the homogeneous point col = np.ones((3, 1), dtype=np.float64) col[0:2, 0] = m.pt # Project from image 1 to image 2 col = np.dot(homography, col) col /= col[2, 0] # Calculate euclidean distance dist = sqrt(pow(col[0, 0] - matched2[i].pt[0], 2) + pow(col[1, 0] - matched2[i].pt[1], 2)) if dist < inlier_threshold: good_matches.append(cv.DMatch(len(inliers1), len(inliers2), 0)) inliers1.append(matched1[i]) inliers2.append(matched2[i])现在我们在inliers1和inliers2变量中具有正确的匹配项,我们可以使用cv.drawMatches对结果进行定性评估。每个对应点都可以帮助我们完成更高层次的任务,例如单应性估计,透视n点,平面跟踪,实时姿态估计或图像拼接。单应性估计:https://docs.opencv.org/4.5.1/d9/d0c/group__calib3d.html#ga4abc2ece9fab9398f2e560d53c8c9780透视n点:https://docs.opencv.org/4.5.1/d9/d0c/group__calib3d.html#ga549c2075fac14829ff4a58bc931c033d平面跟踪:https://docs.opencv.org/4.5.1/dc/d16/tutorial_akaze_tracking.html实时姿态估计:https://docs.opencv.org/4.5.1/dc/d2c/tutorial_real_time_pose.html图像拼接:https://docs.opencv.org/4.5.1/df/d8c/group__stitching__match.htmlres = np.empty((max(img1.shape[0], img2.shape[0]), img1.shape[1] + img2.shape[1], 3), dtype=np.uint8)cv.drawMatches(img1, inliers1, img2, inliers2, good_matches, res)plt.figure(figsize=(15, 5))plt.imshow(res)由于很难比较这种定性的结果,所以我们需要一些定量的评价指标,最能反映描述符可靠性的指标是inliers的百分比:Matching Results (BEBLID)*******************************# Keypoints 1: 9105# Keypoints 2: 9927# Matches: 660# Inliers: 512# Percentage of Inliers: 77.57%使用BEBLID描述符可以获得77.57%的inliers。如果我们在description单元格中注释BEBLID并取消注释ORB descriptor,结果将下降到63.20%:# Comment or uncomment to use ORB or BEBLID# descriptor = cv.xfeatures2d.BEBLID_create(0.75)descriptor = cv.ORB_create()kpts1, desc1 = descriptor.compute(img1, kpts1)kpts2, desc2 = descriptor.compute(img2, kpts2)Matching Results (ORB)*******************************# Keypoints 1: 9105# Keypoints 2: 9927# Matches: 780# Inliers: 493# Percentage of Inliers: 63.20%总之,用BEBLID替换ORB描述符只需一行代码,就可以将两幅图像的匹配结果提高14%,这对需要局部特征匹配才能工作的更高级别任务有很大收益。
-
【功能模块】【操作步骤&问题现象】1、按照https://gitee.com/ascend/samples/blob/master/cplusplus/environment/opencv_install/README_200DK_CN.md,安装ffmpeg和opencv2、是在atlas200dk上安装opencv时,显示virtual memory exhausted: Cannot allocate memory,并不是在自己的虚拟机上安装opencv,在开发板上出现这个问题怎么解决?难道只能换一个大点的内存卡吗?【截图信息】【日志信息】(可选,上传日志内容或者附件)
上滑加载中
推荐直播
-
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
2025/01/10 周五 15:30-17:30
MindStudio布道师
算子工具性能优化新特性演示——MatMulLeakyRelu性能调优实操
回顾中 -
用代码全方位驱动 OBS 存储
2025/01/14 周二 16:30-18:00
阿肯 华为云生态技术讲师
如何用代码驱动OBS?常用的数据管理,对象清理,多版本对象访问等应该如何编码?本期课程一一演示解答。
即将直播 -
GaussDB数据库开发
2025/01/15 周三 16:00-17:30
Steven 华为云学堂技术讲师
本期直播将带你了解GaussDB数据库开发相关知识,并通过实验指导大家利用java基于JDBC的方式来完成GaussD数据库基础操作。
去报名
热门标签