• [问题求助] 【atlas200dk】【安装opencv】virtual memory exhausted: Cannot allocate
    【功能模块】【操作步骤&问题现象】1、按照https://gitee.com/ascend/samples/blob/master/cplusplus/environment/opencv_install/README_200DK_CN.md,安装ffmpeg和opencv2、安装opencv时,make -j8,报错【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] SDC如何使用自己的算法,没有使用任何框架,只是用了opencv numpy库
    我使用的是传统的算法,没有使用caffe框架,没有使用深度学习,如何安装自己的算法呢 是不是直接通过Rusy studio直接转化呢求助
  • [问题求助] 【Atlas200DK产品】opencv如何在CMakeLists中写
    【功能模块】自己写的程序调用了opencv,但是cmakelists不知道如何写opencv,好像是一直找不到opencv的路径
  • [问题求助] 【Atlas200DK产品】可以安装opencv3吗
    【opencv】问题1:根据教程 https://gitee.com/ascend/samples/blob/master/cplusplus/environment/opencv_install/README_200DK_CN.md  默认安装的是opencv4.3版本,开发板上可以安装opencv3吗,有无相关教程?
  • [其他] 使用Python将照片变成卡通照片
    正如你可能知道的,素描或创建一个卡通并不总是需要手动完成。如今,许多应用程序可以把你的照片变成卡通照片。但是如果我告诉你,你可以用几行代码创造属于自己的效果呢?有一个名为OpenCV的库,它为计算机视觉应用程序提供了一个公共基础设施,并优化了机器学习算法。它可以用来识别物体,检测和产生高分辨率的图像。本文,将向你展示如何利用OpenCV为Python中的图像提供卡通效果。使用google colab来编写和运行代码。你可以在这里访问Google Colab中的完整代码https://colab.research.google.com/drive/1lV5oJ_hI8PsSV1WDVWWfL18-tMm4vnxe?usp=sharing要创造卡通效果,我们需要注意两件事:边缘和调色板。这就是照片和卡通的区别所在。为了调整这两个主要部分,我们将经历四个主要步骤:加载图像创建边缘蒙版减少调色板结合边缘蒙版和彩**像在开始主要步骤之前,不要忘记导入notebook中所需的库,尤其是cv2和NumPy。import cv2import numpy as np# required if you use Google Colabfrom google.colab.patches import cv2_imshowfrom google.colab import files1. 加载图像第一个主要步骤是加载图像。定义read_file函数,其中包括cv2_imshow以在Google Colab中加载所选图像。def read_file(filename):  img = cv2.imread(filename)  cv2_imshow(img)  return img调用创建的函数来加载图像。uploaded = files.upload()filename = next(iter(uploaded))img = read_file(filename)我选择了下面的图片来转化成卡通图片。2. 创建边缘蒙版通常,卡通效果强调图像中边缘的厚度。我们可以使用 cv2.adaptiveThreshold() 函数检测图像中的边缘。总之,我们可以将 egde_mask函数定义为:def edge_mask(img, line_size, blur_value):  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  gray_blur = cv2.medianBlur(gray, blur_value)  edges = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, line_size, blur_value)  return edges在该函数中,我们将图像转换为灰度图像。然后,利用cv2.medianBlur对模糊灰度图像进行去噪处理。模糊值越大,图像中出现的黑色噪声就越少。然后,应用自适应阈值函数,定义边缘的线条尺寸。较大的线条尺寸意味着图像中强调的较厚边缘。定义函数后,调用它并查看结果。line_size = 7blur_value = 7edges = edge_mask(img, line_size, blur_value)cv2_imshow(edges)3. 减少调色板照片和图画之间的主要区别——就颜色而言——是每一张照片中不同颜色的数量。图画的颜色比照片的颜色少。因此,我们使用颜色量化来减少照片中的颜色数目。色彩量化为了进行颜色量化,我们采用OpenCV库提供的K-Means聚类算法。为了在接下来的步骤中更容易实现,我们可以如下定义color_quantization 函数。def color_quantization(img, k):# Transform the image  data = np.float32(img).reshape((-1, 3))# Determine criteria  criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 20, 0.001)# Implementing K-Means  ret, label, center = cv2.kmeans(data, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)  center = np.uint8(center)  result = center[label.flatten()]  result = result.reshape(img.shape)  return result我们可以调整k值来确定要应用于图像的颜色数。total_color = 9img = color_quantization(img, total_color)在本例中,我使用9作为图像的k值。结果如下所示。双边滤波器在进行颜色量化之后,我们可以使用双边滤波器来降低图像中的噪声。它会给图像带来一点模糊和锐度降低的效果。blurred = cv2.bilateralFilter(img, d=7, sigmaColor=200,sigmaSpace=200)有三个参数可根据你的首选项进行调整:d:每个像素邻域的直径sigmaColor:参数值越大,表示半等**域越大。sigmaSpace:参数的值越大,意味着更远的像素将相互影响,只要它们的颜色足够接近。4. 结合边缘蒙版和彩**像最后一步是将我们之前创建的边缘蒙版与彩色处理图像相结合。为此,请使用cv2.bitwise_and函数。cartoon = cv2.bitwise_and(blurred, blurred, mask=edges)我们可以在下面看到原始照片的“卡通版”。现在你可以开始来创建你自己的卡通效果。除了在我们上面使用的参数中调整值之外,你还可以从OpenCV添加另一个函数来为你的照片提供特殊效果。代码库里还有很多东西我们可以探索。很高兴尝试!参考文献:https://www.programcreek.com/python/example/89394/cv2.kmeanshttp://datahacker.rs/002-opencv-projects-how-to-cartoonize-an-image-with-opencv-in-python/
  • [问题求助] CANN20.2安装遇到的问题4
    在编译转换 1.73版本的项目 给黑白照片上色的过程中,原来的版本(https://gitee.com/lovingascend/quick_start/blob/master/Atlas200DK_separate_MD/picture_sample.md  )介绍了2种方式,并且采用了使用开发板编译再倒回宿主机编译的方式:其中,在开发板安装完opencv和ffmpeg之后,将开发板上编译好的so文件拷贝回了宿主机:不知道在CANN 20.2的升级版 3.3.0.alpha (即1.77——这个版本号能绕晕人不。。。)的环境下,是不是仍然是这样处理方式?(建立ascend_ddk 目录)我感觉环境变量好像是有变化 的。。。另外,如果我想第一种使用正向的编译方式,即:在宿主机(开发环境)安装ffmpeg和opencv(采用交叉编译方式),应该怎么做呢?我好像找到了交叉编译 opencv的方式:https://blog.csdn.net/xiaolong1126626497/article/details/105274123  https://blog.csdn.net/ajianyingxiaoqinghan/article/details/70194392 (主要看这个链接))但是这样的话,是不是所有的opencv及其编译依赖(如zlib,jpegsrc,libpng,yasm,x264,xvidcore,ffmpeg)都必须是交叉编译的才行?是不是因为这样子才算成本高?
  • [MindX SDK] 使用OPENCV第三方库
    MindX SDK的opensource目录,已经包含了opencv4Ascend\mindx_sdk\mxManufacture_20.2.0\linux-aarch64\mxManufacture\opensource\include\opencv4Ascend\mindx_sdk\mxManufacture_20.2.0\linux-x86_64\mxManufacture\opensource\include\opencv4但是Ubuntu本身的/usr/include下也有opencv2(版本比较旧),  在用MindX SDK编译例子程序samples\cplusplus\level2_simple_inference\2_object_detection\VGG_SSD_coco_detection_DVPP_with_AIPP出错。问题出在utils.h 中#include "opencv2/imgcodecs/legacy/constants_c.h",提示找不到这个文件。我定位了一下,发现引用的是/usr/include目录的OpenCV2,而不是MindX SDK本身提供的。我如何让MindX SDK使用Opensource目录的OpenCV??? 需要将/usr/include下的OpenCV的头文件和相应的库文件删除吗?有没有办法指定路径,让MindX SDK找自身提供的OpenCV?
  • [问题求助] 【atlas200DK】【旧样例】20.0.0版本树梅派摄像头人脸检测
    请问去年八月-十一月20.0.0版本的样例还有吗?实在是不想再重新配置一遍环境了,很多东西都固化了。。。旧的样例,比如20.0.0版本树梅派摄像头人脸检测的样例在哪里可以找到呢
  • [FAQ] Opencv图片通道合并和分离
    在模型推理时,需要对图片做NCHW或者NHWC的排布处理,此时需要对图片进行通道分离。C++代码可以使用split函数对图片进行通道分离,代码如下://分离vector<Mat> planes;split(mm,planes); //合并vector<Mat> planes;planes.push_back(plane0);planes.push_back(plane1);planes.push_back(plane2);Mat mat;merge(plane,mat);
  • [FAQ] 二进制数据的yuv nv12图像转opencv mat
    设二进制图像宽image_width, 高image_height, 二进制数据内存地址image_data。要转为opencv bgr,可以使用如下步骤:Mat src(img_height * 3 / 2, img_width, CV_8UC1);int image_size = src.cols * src.rows * src.elemSize();memcpy(src.data, image_data, image_size);mat destcvtColor(src, dest, CV_YUV2BGR_NV12);
  • [Atlas200] 在atlas200上测试opencv程序处理速度在1.8帧左右,K3399上处理速度为4帧,该板子性能是否不如K3399?
    【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [Atlas500] pc端交叉编译opencv成功后,缺少文件
    之前有在x86的pc端上面编译过opencv3.4.5,库文件放在/user/local下的。目前我这边在交叉编译opencv的时候,虽然编译成功了,但是编译代码的时候,就会报错说找不到constants_c.h这个头文件。在用x86编译的opencv下是有的,目录为/usr/local/include/opencv4/opencv2/imgcodecs/legacy下。交叉编译出来的文件中,虽然也有opencv2/imgcodecs这个目录,但是唯独缺少了constants_c.h这个头文件。。请问这个怎么办?
  • [问题求助] 200DK调用摄像头例程中的ImageData如何和opencv转换?
                                                                            200DK调用摄像头例程中的ImageData如何和opencv转换?能用opencv调用200DK自带的树莓派摄像头吗?
  • [技术干货] 好好学习,天天向上
    good good study day day up
  • [交流分享] ARM环境下源码编译opencv
    ubuntu需要安装如下依赖apt-get install build-essentialapt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devapt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-devCentOS/Euler需要安装如下依赖yum install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel python python-devel python-pip cmake -yyum install python-devel numpy python-numpy gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel -yyum install libjpeg-turbo-devel libtiff-devel  libdc1394-devel tbb-devel eigen3-devel gstreamer-plugins-base-devel –yyum install freeglut-devel mesa-libGL mesa-libGL-devel  boost boost-thread boost-devel libv4l-devel -y编译安装方法export GIT_SSL_NO_VERIFY=truegit clone https://github.com/opencv/opencv.gitcd opencvgit checkout 3.4.10   或者离线下载opencv包,然后解压mkdir -p buildcd buildcmake -D BUILD_opencv_python3=yes -D BUILD_opencv_python2=no -D PYTHON3_EXECUTABLE=/usr/local/python3.7.5/bin/python3.7m -D PYTHON3_INCLUDE_DIR=/usr/local/python3.7.5/include/python3.7m -D PYTHON3_LIBRARY=/usr/local/python3.7.5/lib/libpython3.7m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/python3.7.5/lib/python3.7/site-packages/numpy/core/include -D PYTHON3_PACKAGES_PATH=/usr/local/python3.7.5/lib/python3.7/site-packages -D PYTHON_DEFAULT_EXECUTABLE=/usr/local/python3.7.5/bin/python3.7m -DENABLE_NEON=OFF -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_FLAGS="-march=armv8-a" -DWITH_WEBP=OFF -DBUILD_opencv_world=ON ..上一步注意更新python和numpy的安装路径make -j$nprocmake install
总条数:322 到第
上滑加载中