图像处理工程师,专注图像处理多年,长期奋斗在图像增强、识别一线。实战经验丰富,研究开发的连铸体拼接算法、人脸美化算法、红外线血管增强识别系统、中药识别系统、石材大板识别系统等均已投入使用。对opencv有着深入理解和解析,以jsxyhelu账号参与OpenCV项目。
原文地址:http://python.jobbole.com/80448/ 假设我们要检测下图中的条形码: 图1:包含条形码的示例图片 现在让我们开始写点代码,新建一个文件,命名为detect_barcode.
主要内容:对比新旧函数,用于过滤原始图像中轮廓分析后较小的区域,留下较大区域。关键字 :connectedComponentsWithStats 在以前,常用的方法是”是先调用 cv::findContours() 函数(传入cv::RETR_CCOMP 标志),随后在得到的连通区域上循环...
一、我们想要求的方向场的定义为: 对于任意一点(x,y),该点的方向可以定义为其所在脊线(或谷线)位置的切线方向与水平轴之间的夹角: 将一条直线顺时针或逆时针旋转 180°,直线的方向保持不变。
对于做图像处理的工程师来说,Sobel非常熟悉且常用。但是当我们需要使用Sobel进行梯度运算,且希望得到“数学结果”(作为下一步运算的基础)而不是“图片效果”的时候,就必须深入了解Sobel的知识原理和OpenCV实现的细节(当然我们是OpenCV支持则)。
这些公式不仅仅是数学家和物理学家的智慧结晶,更是人类文明的集中体现。每一个公式都深深影响了人类社会的变革,甚至塑造了人类的思想。这些公式中有些你会很熟悉,有些你也许不那么熟悉。作为人类的我们有必要了解这些公式,了解人类的思想历程。
asp.net调用opencv类库,实现图像处理显示 原理上来说,通过dll的调用,无论是asp.net还是winform都可以调用opencv及其类库。但是在实现的过程还是有许多细节是经过摸索和总结才得到结果的。
原文地址:http://blog.csdn.net/dcrmg/article/details/52108258 二维码解码器Zbar+VS2012开发环境配置 Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件、手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, QR Code(二维码)等常用编码方式的条形码/二维码。
前一段时间,我一直在制作OpenCV基础知识的课件(《学习OpenCV3.0初级实战视频课程》 http://edu.51cto.com/course/10381.html,《学习OpenCV3.0中级实战视频课程》http://edu.51cto.com/course/10712.html)。
我喜欢《你的名字》这个故事,前一段时间在微信上使用过它的滤镜,实现的效果很惊艳,应该类似于下面的这些结果 这三幅图应该都是手机版本制作的,它们一个比较显著的特点是分辨率比较相似。
在OpenCV提供更多函数中,grabcut能够实现抠图,inpaint能够实现修补。那么把两者结合起来,就能够实现简单的“人像去除”功能,也就是框选一个人后,使用周围的景象对人像进行修补。虽然效果比不上PS,但是也差强人意。
Opencv内部提供了一个基于Hough变换理论的找圆算法,HoughCircle与一般的拟合圆算法比起来,各有优势:优势:HoughCircle对噪声点不怎么敏感,并且可以在同一个图中找出多个圆;反观拟合圆算法,单纯的拟合结果容易受噪声点的影响,且不支持一个输入中找多个圆缺点:原始...
问题来源:http://answers.opencv.org/question/162480/contour-detection-for-gray-stickers-on-white-background/ 题目的大概意思就是这样的白板,寻找上面的各种便签条。
这道题目来源于网友问答,采用博客方式回答比较容易说明。 问题: 对于这样的图片 如何寻找上面的矩形 思路: 这个矩形的面积在所有的图像中是最大的(除去整个图形轮廓以外),可以尝试从这个方面入手,再加上一些鲁壮的方法 #include "stdafx.
参考:http://wenhuix.github.io/research/denoise.html一、基本情况 (一)基本方法 Fast Non-Local MeansDenoising (FNLMD),论文为 Mahmoudi, Mona, and Guillermo Sapiro.
我的十年图像生涯 王郑耀 技术总监 上海易渊图像 西安交通大学 前一段时间看到李开复老师的微薄上转发的一个微薄: //@王利芬: 中国为什么出不了大师?第一有很大一部分是惯性使然并没有领悟一个行业的规律,第二,因为中国官本位,在一个职位做得好一点就提成一个小官,当官了就不怎么做事,让下面人做,所以做事的全是新来的实习的或者不会做人的。
原文地址:http://answers.opencv.org/question/160599/img-img1mask-img21-mask-how-do-that/ 如何提高一个简单操作的速度?最后的multiply方法很有启示。
一般来说,直接分析RGB色彩域的颜色分布不是一个好的思路,我们一般转换到HSV域来分析。但是本文只要是应网友提问,实现最基本的RGB色彩域的主颜色分析。 代码分为以下部分: 1、生成测试图片。为了测试算法是否准确,主动生成具有25种不同颜色同比重的图片(每种4%)的测试图片。
seamlessClone是OpenCV中新出现的函数,应该说如果能够基于较为准确的图像分割,能够得到很好的结果。 原始的前景,背景 三种flag下的融合结果 //注意头文件中添加 #include int main( int argc, const char** argv ){ Mat src = imread("iloveyoupapa.
参考了《Opencv中Mat矩阵相乘——点乘、dot、mul运算详解 》“http://blog.csdn.net/dcrmg/article/details/52404580”的相关内容。 乘法是线性代数的基本操作,在OpenCV中有三种方法实现了乘法。
这个按钮的目的是用于手动排列图片序列,应该说写得比较精巧,我使用csharp进行模仿,主要采用的是自动控件创建技术。结果比较简陋,实现功能而已,放出来大家一起学习。 using System;using System.
一、首页 ICE实现的这种界面样式,有可能使用WCF实现的,但是MFC来模仿也是可行的。 包括配置界面,和右下角的细节。 首页的主要功能只有3个,分别为图片拼接、视频拼接和打开拼接文件。 二、输入拼接图片 首先是直接打开N多图片 注意界面上的小细节,可以先模仿(这里的界面实现的很好,如果需要可以专门花一些时间来进行学习) 右边上的图像操作非常顺滑。
// L14//基于ORB实现线性融合#include "stdafx.h"#include #include #include #include #include #include #include #include #include #include using namespace st...
关于算法原理请参考《基于SURF特征的图像与视频拼接技术的研究》。一、问题提出 RANSAC的算法原理并不复杂,比较复杂的地方在于“建立模型”和“评价模型”。我们经常看到的是采用“直线”或者“圆”作为基本模型进行“建立”,而采用所有点到该“直线”或“圆”的欧拉距离作为标准来“评价”(当然是越小越好)。
问题的提出:所谓内切圆,是指“与多边形各边都相切的圆“。我们这里需要找的是所谓”内接圆“,可以简单认为是”圆点在轮廓中,到轮廓中所有点的距离一样的图像“。在这所有的”内接圆“中,寻找半径最大的哪一个。这个问题已经广泛讨论了,比如 这样的图像,寻找轮廓的最大内接圆。
在Stitching模块中,通过“光束法平差”的时候,有一个步骤为“通过单应矩阵估算摄像头焦距”,调用的地方为: void focalsFromHomography(const Mat& H, double &f0, double &f1, bool &f0_ok, bool &f1_ok){ CV_Assert(H.
在Stitching模块中以及原始论文《Automatic Panoramic Image Stitching using Invariant Features》3.2中,都有“根据已经匹配好的特征对,判断哪些图片是属于序列,那些图片是不属于序列”的这一步操作。
titching模块中对特征提取的封装解析(以ORB特性为例) OpenCV中Stitching模块(图像拼接模块)的拼接过程可以用PipeLine来进行描述,是一个比较复杂的过程。在这个过程中,特征提取是重要的一个部分。
OpenCV中有多种选取区域的方法,罗列在表中。使用方法如下,其中比较值得注意的是乘法和除法。 此外,它还有更多的功能 稀疏矩阵 The cv::SparseMat class is used when an array is likely to be very large compared to SparseMat(稀疏矩阵)在一个矩阵的绝大部分都非零的时候使用。
2017年4月16日 一周AnswerOpenCV佳作赏析 1、HelloHow to smooth edge of text in binary image, based on threshold.Something like anti-aliasing by openCv?example ...
第四章The cv::Mat Class: N-Dimensional Dense Arrays Mat n维稠密阵列 The cv::Mat class can be used for arrays of any number of dimensions. The data is mat可以作为任意维的数组。
win10 安装 tensorflow 并运行helloworld 折腾了一下,在win10上成功安装tensorflow. 1 下载安装python,注意一定要是64位(比如python-3.5.
下载地址:https://files.cnblogs.com/files/jsxyhelu/GOCW20171217.zip 现在将Csharp调用基于Opencv编写的类库文件(Dll)的方法定下来,我取名叫做GreenOpenCsharpWarper,简称GOCW。
OpenCV的HighGUI提供了视频和摄像头的直接打开。那么它是如何实现的了?这里进行初步分析。 /** * Videoreader dispatching method: it tries to find the first * API that can access a given filename.
OpenCV是托管于GitHub的开源项目,本文具体解决一个问题,就是“获取最新版本的OpenCV,并且在自己的项目中使用起来" 最新版本 2017年3月31日 BY:jsxyhelu 目录: 1 下载最新代码; 2 编译代码(区分静态库/动态库模式 32位和64位) 3 在自己项目中使用 一 下载最新代码,可以通过GIT或Http直接下载 或(注意 github国内访问通过修改host表可以提速) 二 编译代码(区分静态库/动态库模式 32位和64位) 使用的方式都是CMake两次Configure->一次Generate->Open Project打开vs进行编译。
第一章 谁使用OpenCV 大多数程序员工程师,或多或少知道“计算机视觉”是什么东西,但是很少有人对于计算机视觉能够运用的区域有全面的认识。比方说,很多人知道图像出来运用于监督和网页上的图像视频处理。
出版社链接:http://shop.oreilly.com/product/0636920044765.do 代码链接:https://github.com/oreillymedia/Learning-OpenCV-3_examples 前言: 本书目的: 目前,4方面趋势使得图像处理成为一个发展迅速的领域 1 人手一手机; 2 互联网和搜索引擎聚合图像视频大数据; 3 计算更加廉价; 4 图像算法更成熟。
一 概述 1. Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
实际比较filter2D和imfilter之间的关系 卷积运算是图像处理和增强中经常遇到的一种算法。由于很多优秀的开源算法都是采用matlab编写的,在我改写为c语言的时候就必然会遇到改写卷积算法的问题。
原文链接:http://answers.opencv.org/question/134783/android-opencv-finding-extreme-points-in-contours/ 导 读:本例子使用轮廓分析,寻找到轮廓的极点;使用了STD的SORT特性。
我使用过FindContours,而且知道有能够直接寻找联通区域的函数。但是我使用的大多只是“最大轮廓”或者"轮廓数目“这些数据。其实轮廓还有另一个很重要的性质,那就是轮廓的相互包含特性。 比如典型的运用在二维码上面 对于它的3个定位点,认为构造了相互包含的轮廓区域,这种特性,在图上只有三处,而且在自然图片中是不容易重复的(当然二维码内部还有校验机制)。
http://answers.opencv.org/question/129819/finding-distance-between-two-curves/ 问题: Hello, Im trying to add tangents along the curve in the image below, like the red lines in the second picture.
How do I get the lowest value of all the non zero value pixels? 问题就是题目:如何从图像中获得非零的最小值。 优质解答: You can use mask : You can use mask : Mat im = imread("f:/lib/opencv/samples/data/lena.
在GOPaint的设计研究过程中,我一直希望能够实现这样的结果(A B C 3个步骤) 在我之前的博客里面,曾经有过缩略图显示的现就,也应用到了实际的项目中。
CLAHE算法对于医学图像,特别是医学红外图像的增强效果非常明显。 CLAHE https://en.wikipedia.org/wiki/Adaptive_histogram_equalization 中文方面非常好的资料 限制对比度自适应直方图均衡化算法原理、实现及效果 在OpenCV中已经实现了CLAHE,但是它在使用过程中,存在参数选择的问题。
资料来源于codeproject,实现的效果是这样的 调用代码: CRect rcEdit2; m_Edit2.GetWindowRect(&rcEdit2); ScreenToClient(&rcEdit2); rcEdit2.
来自《星际迷航》的灵感启发 《星际迷航》中有很多黑科技正在变成现实。作为一名图像处理工程师,我比较关心那些和实际联系紧密的技术。 在最近的研究中,我忽然想到,《星际迷航》中医生BONE使用这样一种设备,平板模样,能够直接看到人体的受损内脏(并且直接修复!!)。
来自MSDN的RibbonGadgets练习RibbonGadgets是少见的来自官方的资源。 如果选择Menu Items = 集合,则会有向下的小箭头,同时会出现下来菜单。 这个都关系叫做gallery button 同时设置这个可以获得 而colorbutton主要是为了获得color而获得的对应 这个所谓库按钮,可是非常有用的。
BCGPVisualStudioGUIDemo 这个界面很不错呀,如果能够实现这种效果,能够解决系列问题 画图程序,这种界面非常先进。用于石材大板等非常优秀。 email的效果 这种东西如果效果不错,应该很好 来自为知笔记(Wiz) 附件列表 目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.
原文地址:http://www.cnblogs.com/xylc/p/3653036.html 随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化。 vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写法。
原文链接:http://coolshell.cn/articles/10590.html#jtss-tsina 识别二维码的项目数不胜数,每次都是开箱即用,方便得很。 这次想用 OpenCV 从零识别二维码,主要是温习一下图像处理方面的基础概念,熟悉 OpenCV 的常见操作,以及了解二维码识别和编码的基本原理。