
图像处理|OpenCV|Halcon
文章平均质量分 93
图像处理应用相关
KayChanGeek
情愫竟短暂 犹如骚人墨客笔下的烟花 风不停留 何苦绕来摇晃灯火
展开
-
SeetafaceV6人脸定位/识别/年龄预测/性别预测/口罩有无/眼睛睁闭
功能人脸定位,人脸识别,年龄预测,性别预测集一体demo,活体检测效果不佳(可能是我摄像头太渣的原因),没加上。环境Windows10,vs2015/2017,seetaface6,opencv411代码#include <iostream>#include <opencv2/opencv.hpp>#include "seeta/FaceDetec...原创 2020-04-07 17:42:38 · 4077 阅读 · 8 评论 -
Android上跑OpenCV
安装JDK网上一堆教程:略。安装Android Studio网上一堆教程:略。安装OpenCV4Android到opencv官网下载地址下载opencv4android包。这边下载3.4.4版本的Android pack。下载后解压可以看到以下几个文件。apk:opencv已经编译好的Android可执行程序,拷贝到手机上即可运行。samples:生成这些a...原创 2019-01-15 16:34:07 · 6442 阅读 · 6 评论 -
一步一步实现多尺度多角度的形状匹配算法(C++版本)
前言用过halcon形状匹配的都知道,这个算子贼好用,随便截一个ROI做模板就可以在搜索图像中匹配到相似的区域,并且能输出搜索图像的位置,匹配尺度,匹配角度。现在我们就要利用opencv在C++的环境下复现这个效果。我们先看下复现的效果图,提升下学习的欲望(要在搜索图像中找到所有的K字母)。下图是模板图像,为一个"K"字母。下图是待搜索的图像,其中的K字符存在旋转,缩放,残缺遮...原创 2018-11-20 20:30:57 · 22311 阅读 · 81 评论 -
Halcon转C++运行程序出现“应用程序无法正常启动0xc000007b”解决
最近用opencv做图像处理时,存在不稳定的现象,于是用halcon解决,于是工程变成了大杂烩···,经过1小时的左右的研究,将halcon的图像处理算法转成C++后,在VS上进行了相应的环境配置搭建,导入一些必要的库,头文件···,进行HObject和CV::Mat的类型转换,HTuple和C++常用的数据类型转换后,总算时编译通过了。but,日狗,出现了一下错误,如下图:原创 2017-08-26 20:55:59 · 4949 阅读 · 5 评论 -
OpenCV移植到ARM-Linux(Exynos4412)全过程
目录 OpenCV移植到ARM全过程-I OpenCV移植到ARM全过程-II OpenCV移植到ARM全过程-III OpenCV移植到ARM全过程-IV 友情连接 OpenCV移植到ARM64-v8平台 技术交流 图像处理-深度学习技术交流群:qq群:247270428 如果文章对您有帮助,打...原创 2018-04-27 20:58:38 · 9477 阅读 · 12 评论 -
Dlib+OpenCV交叉编译移植到ARM64-v8平台
系统环境ubuntu16.04 + dlib + opencv320 + qt560 准备资源 1、Dlib源码 - https://github.com/davisking/dlib2、OpenCV源码(这里使用OpenCV320) - https://www.opencv.org/releases.html3、CMake3.5.1 - sudo apt-get...原创 2018-05-18 15:50:42 · 9625 阅读 · 12 评论 -
Dlib实现人脸特征点检测全过程
下载dlib source和shape_predictor_68_face_landmarks.dat 到dlib官网的GitHub下载入口dlib-source和shape_predictor_68_face_landmarks.dat。CMake dlib 最新版本的dlib需要C++11的支持,所以在windows-msvc编译器至少要vs2015(msvc14)的。之前的18....原创 2018-04-19 19:45:18 · 11217 阅读 · 7 评论 -
OpenCV-DNN使用CaffeModel实现手写数字识别
开发环境 VS2013 + OpenCV3.4.1 + Qt5.8.0 + Caffe实验准备 lenet_iter_5000.caffemodel // Caffe使用LeNet网络结构迭代训练5000次的model lenet_iter_10000.caffemodel // Caffe使用LeNet网络结构迭代训练10000次的model lenet_trai...原创 2018-04-13 19:37:33 · 2715 阅读 · 2 评论 -
CMake opencv时Download: opencv_ffmpeg.dll、ippicv等失败的解决方法
最近OpenCV更新到了3.4.1,下载了OpenCV3.4.1的源码,想编译一个VS2013X64的SDK,在CMake的时候一般会下载一些依赖(ffmpeg*.dll,ippicv*.zip)等。但是现在宿主机没有网络,CMake-Configure就会失败···,或者有时候网络很差,下载速度极慢或者干脆一直下载失败···CMake-Configure也会失败。失败提示如下图: ...原创 2018-04-12 21:17:56 · 37991 阅读 · 69 评论 -
OpenCV-DNN使用YOLO网络目标检测
开发环境 VS2013 + OpenCV3.4.1 + Qt5.8.0实验准备 yolov2-tiny.cfg yolov2-tiny.weights 或 yolov2.cfg yolov2.weights 或 yolov2-voc.cfg yolov2-tiny-voc.weights 以上数据的下载地址戳这里,或者直接下载我的工程(注...原创 2018-04-17 20:34:42 · 6241 阅读 · 14 评论 -
OpenCV-DNN使用SSD网络目标检测
开发环境 VS2013 + OpenCV3.4.1 + Qt5.8.0实验准备 VGG_VOC0712_SSD_300x300_iter_120000.caffemodel deploy.prototxt 以上数据可以由这里下载得到(或者直接下载本工程),使用的是基于Caffe+VOC0712数据集训练出来的caffemodel。主要代码读取网络string modelTx...原创 2018-04-17 19:26:57 · 6617 阅读 · 14 评论 -
KNN实现手写数字识别
KNN简介 物以类聚,人以群分就是KNN的算法的宗旨,要辨识一个人大概是社么样的人,可以从他的朋友圈入手,看他的盆友圈属于哪种类型(和哪种类型的盆友圈最接近,比如经常去夜店的二代、老实的码农、像我这样帅的人)就可以大致判断他也属于该类型的人。KNN就是将未知样本和已知样本集合进行比较,比较未知样本和所有已知样本的接近程度进行排序,最后提取前K个最接近的样本,看在这K个样本中哪种几何所占的比例...原创 2018-03-28 19:27:43 · 5955 阅读 · 0 评论 -
C/C++代码封装为Python模块(含OpenCV-Mat转换)
准备资料Ubuntu16.04或者其他版本Python2.x或者Python3.xboost_1_69_0或者其他版本 // https://www.boost.org/users/history/version_1_69_0.htmlOpenCV3.4.3或者其他版本 // https://www.opencv.org/releases.htmlpyboostcvconver...原创 2019-03-09 11:41:33 · 6881 阅读 · 0 评论 -
Dlib+Resnet实现人脸检测/注册/识别
说明在下封装了一个人类识别类,供大家参考。使用以下代码可以很快的开始你的人脸定位,人脸注册,人脸识别验证。(人脸注册以图片+名字的形式)使用环境windows/linux,支持C++11的编译器(msvc14,msvc15+,gcc4.7+)准备材料CMake + dlib源码 + opencv +dlib_face_recognition_resnet_model_v1.d...原创 2019-06-03 09:58:26 · 3603 阅读 · 0 评论 -
KCG-VISION:条码读取
新建工程新建工程"Read_Code",其过程或下载软件可以参考《KCG-VISION:获取图片》。实验目的从标准相机实时读取条码,并画出条码的位置。相关算子如果没有标准相机,使用其他图片也可以,最终的算子脚本流程如下:运行效果软件下载软件下载,戳这里。...原创 2019-06-24 11:28:30 · 1131 阅读 · 0 评论 -
KCG-VISION:缺陷检测
新建工程新建工程"Image_Diff",其过程或下载软件可以参考《KCG-VISION:获取图片》。实验目的一张标准图像,一张缺陷图像,并且这两张图像存在平移旋转的差异,找到缺陷位置。标准图像缺陷图像相关算子最终的算子脚本如下图:运行效果差分后,白色的为缺陷位置。...原创 2019-06-24 11:11:40 · 1859 阅读 · 1 评论 -
KCG-VISION:数量计数
新建工程新建工程"Count_Beans",其过程或下载软件可以参考《KCG-VISION:获取图片》。实验目的统计下图中豆的数量及其大致位置。相关算子算子运行流程读取图像->转灰度图像->二值化->距离变换计数->画出计数结果。最终的算子脚本如下图:运行结果总共有17个豆豆。...原创 2019-06-24 10:50:22 · 837 阅读 · 0 评论 -
KCG-VISION:形状匹配
新建工程新建工程"Shape_Match",其过程或下载软件可以参考《KCG-VISION:获取图片》。实验目的找到下图中所有的目标U形零件的位置和角度。制作模板模板图像如下图选择“工具->制作形状匹配模板”。然后弹出如下界面,依次配置输入模板图像,输出模型路径,和配置对应制作模板参数后点击开始制作即可。配置参数如下图制作过程如下图...原创 2019-06-20 14:42:30 · 2523 阅读 · 0 评论 -
KCG-VISION:找直线
新建工程新建工程"Find_Line",其过程或下载软件可以参考《KCG-VISION:获取图片》。实验目的找到下图中的直线。运行过程读取该图片->直线查找->画出找到的直线。相关算子最终的算子脚本如下图最终效果图...原创 2019-06-20 13:46:45 · 1223 阅读 · 1 评论 -
KCG-VISION:形态学操作
新建工程新建工程"Morphology",其过程或下载软件可以参考《KCG-VISION:获取图片》。实现效果读取本地图片->形态学操作(腐蚀(0), 膨胀(1), 开运算(2), 闭运算(3), 形态学梯度(4), 顶帽(5), 黑帽(6))。最终算子脚本如下图原始图像腐蚀效果膨胀效果开运算效果闭运算效果形态学梯度效果...原创 2019-06-20 11:22:52 · 592 阅读 · 1 评论 -
KCG-VISION:二值化和自适应二值化
新建工程新建工程"Threshold",其过程或下载软件可以参考《KCG-VISION:获取图片》。实现效果读取本地图片->颜色转换(转灰度)->二值化 ->自适应二值化编辑算子添加以上四个算子最终算子如下所示二值化效果自适...原创 2019-06-20 11:04:04 · 1136 阅读 · 1 评论 -
KCG-VISION:颜色变换
新建工程新建工程"Color_Covert",其过程或下载软件可以参考《KCG-VISION:获取图片》。编辑算子首先从本地读取一张图片(选择算法->图像输入->本地图片),然后对该图片进行颜色转换(选择算法->预处理->颜色转换)。此时会弹出一个对话框,如下图:让你选择输入图像(要进行颜色变换的图像),输出图像(颜色变换后的图像存储键值),变换...原创 2019-06-20 10:40:56 · 775 阅读 · 0 评论 -
KCG-VISION:简介(一款快速开发机器视觉的软件)
前言KCG-VISION是本人开发的一个快速开发传统机器视觉的集成软件,集成了一些常用图像处理的算法,让这些算法可以可视化操作,可以利用GUI进行图像的分析,快速验证你的想法,提高开发测试的效率。主界面简介主界面如下图所示,主要由菜单栏和图片显示框和算子编辑框和输出窗口及其状态栏组成。菜单栏介绍文件:包括新建工程,打开工程,保存工程和关闭软件。编辑:包括算子编辑区的...原创 2019-06-19 16:29:05 · 5655 阅读 · 6 评论 -
KCG-VISION:获取图片
下载KCG-VISION下载KCG-VISION到本地。打开KCG-VISION新建工程命名工程为“Get_Image”,然后点击保存,此时会在你选择的目录下生成工程Get_Image.kcgproj。编辑算子此时就可以在算子编辑区编辑你的算子,本文介绍几个图像输入的算子:“本地图片,虚拟相机,本地视频,标准相机,大恒相机,巴斯勒相机”。下面以本地图片为例。...原创 2019-06-20 10:11:20 · 2859 阅读 · 0 评论 -
Caffe初体验之Caffe-Windows的配置(CPU/GPU)与Mnist数据集测试
配置编译caffe-windows安装CUDA(适用GPU版本) 去英伟达下载CUDA7.5,windows10,x86_64,本地安装,如下图:下载安装CUDNN(V4 for cuda7.0或者V5 for cuda7.5)(适用GPU版本) 这个过程的话新用户需要注册,如下图:下载解压缩会得到3个文件夹:include bin lib,将这3个文件夹里面的内容合并到CUDA的安装...原创 2018-04-10 20:46:32 · 2647 阅读 · 1 评论 -
SVM实现手写数字识别
SVM简介 知乎上的一个回答我认为是史上最NB最形象的SVM含义解释,想看介绍戳这里(里面的第一个回答),再看看百科就能知道个大概了。开发环境 Windows10 + VS2013 + Qt580 + OpenCV300主要代码 利用opencv-SVM算法和Mnist数据集封装成一个单例模式的数字识别检测器。DigitsDetector.h#ifndef DIGITSDETEC...原创 2018-03-30 18:48:01 · 9916 阅读 · 1 评论 -
感知哈希算法实现以图搜图软件
前言百度谷歌等搜索引擎有一个用图片来搜索图片的功能,如下图所示:网上看到一篇介绍实现它的一种方法原理的文章,依据该原理方法自己动手写了一个类似功能的软件(软件含源码)。开发环境Windows10+VS2013+OpenCV300+Qt560理论与代码实现上面那篇文章实现意图搜图功能大概有以下几个步骤(注:以下理论引用自上面那篇文章,算法自己实现,只列出主要代码):原创 2018-02-07 22:03:39 · 2421 阅读 · 1 评论 -
OpenCV标定板制作工具
天气炎热,无心做项目。今天有点无聊,写了一个OpenCV的棋盘标定板制作工具小软件。我们先来预览一下小软件的样子。再解析解析!如下图:我们只要在定义标定板输入我们想要的棋盘横向方格数,棋盘纵向方格数,和方格的边长点击开始制作即可生成对应的标定板,如果你点击开始制作发现没有生成预览,那是因为你设置的方格边长太小,你看不到导致的。好的,软件使用就是那么简单了,我们来说说制作原理吧。原创 2017-07-26 19:23:09 · 4811 阅读 · 1 评论 -
废料最大利用问题
上周在群里看到一个有趣的外包问题,废料最大化分割利用。用了两个个多小时写的一段分割代码,但是不是最大利用率,不过还行吧!仅供做类似问题的人参考参考!先来看看问题描述:就是一块不规则的材料,我们要在这个不规则材料上进行切割半径一定圆,使得废料最大化被切割利用,大概应该听懂问题描述了吧,上个图你们就明白问题了。以下是我在模拟处理一块三角形废料的原型和结果。以上是原图材料,然后在材料上切割指原创 2017-07-26 20:12:57 · 566 阅读 · 0 评论 -
OpenCV调试神器-ImageWatch
今天介绍一款在VS下调试opencv代码的神器-ImageWatch插件,相信在没有使用这款插件的时候,很多人调试CV代码的时候要查看某个cv::Mat数据结构的图像数据时,总是要建立一个窗口,然后imshow,而且后期要改成release代码的时候还要去掉这些代码,很是麻烦。如果你用过halcon的话,你应该知道halcon下编写代码可以实时的查看图像变量,没错,ImageWatch和halco原创 2017-08-08 20:23:41 · 3629 阅读 · 2 评论 -
OpenCV-图像混合
今天介绍一下OpenCV的图像混合API的使用,函数原型为: void addWeighted(InputArray src1, double alpha, InputArray src2,double beta, double gamma, OutputArray dst, int dtype = -1); 乍一看,有点抽象,说说原理吧!实际上它实现的是数原创 2017-08-12 16:27:57 · 648 阅读 · 0 评论 -
基于OpenCV的图像直线分析和拟合工具
见过别人利用halcon封装了一个不错的函数叫drawRake好像是这个名字。这个工具挺好用的,可以在图像上随意画一条直线,然后设置一些参数,他就能在你画的这条线附近寻找你想要的直线, 然而其不是开源的,halcon也是收费的。就心血来潮想自己做一个类似的工具,花了一天搞出来了,经过测试,效果也是杠杠的。下面介绍给大家,并会提供该工具函数的源码。 图像处理过程中我们有时候要对摄像原创 2017-08-16 15:50:57 · 5151 阅读 · 9 评论 -
OpenCV+ZBar实现条码识别(Windows32位和64位)
zbar是一种条码的识别开源库,可以识别很多类型的条码,今天介绍在Windows下使用zbar和opencv实现条码的识别。 第一步:下载安装zbar for Windows,Windows下载后的是一个exe文件,点击运行即可,当然,如果你是码农要基于它开发的话,请在安装过程中勾选下面的选项,如下图:安装好之后你就可以用啦,里面提供了两个小demo,图片条码识别和相原创 2017-08-22 19:36:40 · 11263 阅读 · 16 评论 -
OpenCV中的GPU模块、CUDA加速
原文来自:http://www.cnblogs.com/dwdxdy/archive/2013/08/07/3244508.htmlCUDA基本使用方法在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下:1.主机代码执行;2.传输数据到GPU;3.确定grid,block大小;4.调用内核函数,GPU运行程序;5.传输结果到CPU;6.继续主转载 2017-11-10 11:05:15 · 6413 阅读 · 0 评论 -
OpenCV移植到ARM全过程-I
很早之前(上大学的时候)就想将opencv移植到ARM板子上玩一玩,可惜一直没去试,因为感觉挺复杂的,最近有移植的需求,就在网络上百度了一番,发现大部分移植笔记都比较混乱,每个人都不一样,而且都是比较古老的(ARM9、ARM11、opencv1.0、opencv2.x等等)。所以我想自己从头都到尾的移植一遍,一步步的记录下移植过程! 前言 这里选择Ope...原创 2017-11-15 19:37:37 · 11808 阅读 · 7 评论 -
OpenCV移植到ARM全过程-II
在上一篇里面,我们已经下载好了opencv源码,安装好了arm-linux交叉编译器和cmake,接下来就是要利用交叉编译器来编译opencv源码了,但是在这之前,我们要先交叉编译opencv的第三方依赖库。(注:为了方便安装,建议切换到root用户下)。 解压opencv源码 在/opt下创建目录arm,将opencv源码放到/opt/arm下,进入/...原创 2017-11-16 15:37:51 · 8866 阅读 · 10 评论 -
OpenCV移植到ARM全过程-III
在上一篇文章里面我们已经交叉编译好了opencv的第三方依赖库,并且解压好了opencv源码。现在开始正式的交叉编译opencv源码。 进入opencv源码目录下,上一篇在源码的的根目录下建立了2个文件夹build和output,进入build目录下。 cd build 运行cmake的GUI程序,在命令行下输入cmake-gui然后按照下...原创 2017-11-16 16:57:48 · 15223 阅读 · 21 评论 -
OpenCV移植到ARM全过程-IV
经过一系列的准备工作,接下来就将opencv应用程序在arm板子上跑起来。 启动板子进入Linux系统,首先将上一步交叉编译输出的opencv库拷贝到板子的/lib目录下,可以通过U盘,TF卡等外接设备挂载拷入,但这个拔来拔去辣是相当的麻烦!还是通过NFS服务共享来的快,这边通过NFS挂载来拷贝(注:要支持NFS服务,不但需要在Ubuntu上安装NFS服务器,安装过程...原创 2017-11-30 10:53:14 · 7623 阅读 · 25 评论 -
张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)
原文来自:http://blog.youkuaiyun.com/dcrmg/article/details/52939318使用OpenCV实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些?相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行转载 2017-07-14 10:44:14 · 1392 阅读 · 1 评论 -
OpenCV相机标定
原文来自:http://blog.youkuaiyun.com/aptx704610875/article/details/48914043这一节我们首先介绍下计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系。以及他们之间的关系。然后介绍如何使用张正友相机标定法标定相机。图像坐标系:理想的图像坐标系原点O1和真实的O0有一定的偏差,由此我们建立了等式(1转载 2017-07-14 10:17:37 · 1080 阅读 · 0 评论