![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV
文章平均质量分 62
OpenCV
无敌三角猫
机器视觉,图像处理方向
展开
-
【OpenCV学习笔记】【编程实例】三(将一个图像中的指定区域拷贝到另一个图像的指定区域
// GetArea.cpp : 定义控制台应用程序的入口点。//opencv把将第一幅图像的一小块区域拷贝到第二幅图像的指定区域//两个感兴趣区域要大小一致,不然会出错#include "stdafx.h"#include "cv.h"#include "highgui.h"int main(){ //加载第一幅图片,0为灰度图像,1为彩色图像 IplImage*转载 2014-09-02 14:00:42 · 6183 阅读 · 0 评论 -
【OpenCV】分离多通道图像RGB的值
【1】计算图像ROI区域RGB的平均值,cvAvg函数。【2】通道分离,合并的时候要特别的注意,分离之后的图像时单通道的灰度图像,最后面显示的彩色图像为方便视觉观察得到的效果。但是我感觉还是不对,因为其他的两个通道的颜色值不变,而想要看的通道的值取零,这样得到的显然不是单通道的图像。在《访问图像中每个像素的值》中我们介绍了存储图像的结构体IplImage的数据结构。多通道字转载 2016-01-09 22:20:41 · 3925 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】十四(cvSeq的用法说明(功能很多,按照需求使用))
cvSeqCvSeq* cvCreateSeq(int seq_flags,int header_size,int elem_size,CvMemStorage* storage)转载 2014-09-14 16:03:19 · 1954 阅读 · 0 评论 -
【OpenCV学习笔记】【编程实例】四(获取一个或多个感兴趣区域)
// 复制一个或多个ROI图像区域 // Author: www.icvpr.com // Blog: http://blog.csdn.net/icvpr #include #include #include int main() { cv::Mat srcImage = cv::imread("../test.jp转载 2014-09-03 19:45:44 · 3514 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】八(序列数据结构)
序列是内存存储器中可以存储的一种对象.序列是某种结构的链表.OpenCV中,序列可以存储多种不同的结构.你可以将序列想象为许多编程语言中都存在的容器类或容器类模版(如C++中的vector).学列在内存被实现为一个双端队列(deque).因此序列可以实现快速的随机访问,已经快速删除顶端的元素,但是从中间删除元素则稍慢些.1.数据结构seq数据结构如下[cpp]转载 2014-02-24 14:43:44 · 1146 阅读 · 0 评论 -
【图像处理】C++将读取图像并将图像转换为矩阵的形式
这个问题是在看Fast Gaussian Blur http://blog.ivank.net/fastest-gaussian-blur.html看到程序,希望建立自己的工程,利用网页提供的代码实现一下看一下效果。首先遇到的问题就是如何将一副图片转换为矩阵的形式。下图为在群里得到的答案:总结起来,有很多的库可以作为读取图片文件并将其转换为矩阵的形式来使用。[1]imagemagi原创 2016-01-09 10:13:49 · 15752 阅读 · 0 评论 -
【OpenCV学习笔记】【算法学习】一(模板匹配)
#include #include "cv.h" #include "highgui.h" int main( int argc, char** argv ) { IplImage *img; IplImage *tpl; IplImage *res; CvPoint转载 2014-07-19 11:30:24 · 825 阅读 · 0 评论 -
快速高斯模糊
高斯模糊是最常见的模糊方式之一,它在机器视觉领域有广泛的应用。对一个图像做高斯模糊,就是用一个高斯窗和图像中每个点做卷积的计算,根据高斯窗大小的不同,可以得到不同精度的模糊效果。其中的主要运算过程就是卷积的运算,它涉及了大量的乘法和加法。因此,虽然高斯模糊在原理上非常简单,但在实际应用中,它却是图像处理中计算量的大头。因此,想办法去加速高斯模糊算法是非常有意义的。由于图像是二维转载 2015-12-25 13:03:24 · 3831 阅读 · 0 评论 -
【OpenCV学习笔记】【类型转换】一(IplImage和cv::Mat的类型相互转换)
先假设img为cv::Mat类型,而Image为IplImage类型cv::Mat-->IplImageImage = IplImage(img);反过来,IplImage-->cv::Mat如下cv::Mat img(Image, 0);不会复制内容,只是二者共用数据,即.data指向同一存储区,但各有各自的header。我查了下二者的定义,发现IplImag原创 2014-07-08 19:44:13 · 2953 阅读 · 0 评论 -
【OpenCV学习笔记】【编程实例】一(VS2010/MFC+OPenCV2.4.7读取图片和摄像头)
问题:VS2010 / MFC + OpenCV 显示图片链接:http://jingyan.baidu.com/article/f71d60375ddd411ab641d1e3.html说明:可以了解一个基本的应用OpenCV的MFC程序的基本流程。(程序和视频)问题:VS2010 / MFC + OpenCV 读取摄像头链接:http://blog.csdn.net/w原创 2014-02-16 16:08:32 · 5067 阅读 · 0 评论 -
魔方机器人思路
以上是网上搜集到的主要思路:1.总结起来,因为魔方的每个面都有9个标准的方块,一个面本身就是一个方块,所以打算判断有无魔方,以及划分每个色块就通过识别正方形来实现。2.分割了每个色块之后,就能确定每个色块的中心了,这样就很方便的能确定该方块的颜色。当然应该还需要去噪和一些其他的处理。原创 2014-02-23 11:25:31 · 2499 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】十九(感兴趣区域)
在进行OpenCV的的编程时,并不是图片中的所有区域都是我们想分析的,原创 2014-09-20 11:16:44 · 880 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】九(RGB空间各通道分离)
#include #include #include int main(int argc, char** argv){ IplImage* src = cvLoadImage( argv[1], 1 ); IplImage * RedChannel = cvCreateImage( cvGetSize(src), 8, 1); IplIma转载 2014-02-24 16:43:34 · 1237 阅读 · 1 评论 -
MSRCR(Multi-Scale Retinex with Color Restore)
引言始于Edwin Herbert Land(埃德温·赫伯特·兰德)于1971年提出的一种被称为色彩恒常的理论,并基于此理论的图像增强方法。Retinex这个词由视网膜(Retina)和大脑皮层(Cortex)合成而来.之所以这样设计,表明Land他也不清楚视觉系统的特性究竟取决于此两个生理结构中的哪一个,抑或两者都有关系。不同于传统的图像增强算法,如线性、非线性变换、图像锐化等只能增强图转载 2016-07-14 14:23:06 · 2860 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】九(RGB空间各通道分离)--Mat类型
#include "stdafx.h"#includeusing namespace std;using namespace cv;int _tmain(int argc, _TCHAR* argv[]){ Mat InpImage=imread("test.jpg",-1); Mat bgr[3]; Mat bgr_res[3]; for( int j = 0 ; j转载 2016-01-08 17:09:14 · 2517 阅读 · 0 评论 -
OpenCV获取图像的高和宽(Iplimage)
IplImage* rImgBlur=cvCreateImage(cvGetSize(InputImageConvertIp),IPL_DEPTH_8U,1); gaussBlur_1(rImg, rImgBlur,rImgBlur->width ,rImgBlur->height,5 );原创 2016-01-10 10:29:34 · 9186 阅读 · 1 评论 -
OpenCV学习(十四)之彩色图像RGB通道的分离、合并与显示
转自:http://lib.csdn.net/article/opencv/25901OpenCV学习(十四)之彩色图像RGB通道的分离、合并与显示作者:ZYTTAE由于算法的需要,需要把彩色图像的R、G、B值分离出来,OpenCV中正好有split() 和 merge() 函数可以实现。实验环境:VS2010 + OpenCV2.4.9一、对单独彩色图转载 2017-11-04 17:13:16 · 7256 阅读 · 1 评论 -
【OpenCV学习笔记】【函数学习】十五(批量读入图片)
问题:在使用OpenCV进行编程的过程中,我们经常会遇到原创 2014-09-14 16:51:01 · 873 阅读 · 0 评论 -
【颜色识别】【Python+OpenCV】KNN(K近邻算法)实现魔方颜色识别【 3-1】
更多内容参考:原创文章作者:无敌三角猫。如若转载,请注明出处:古月居 https://www.guyuehome.com/371111.颜色识别该程序利用KNN实现魔方颜色识别,特征采用RGB的颜色直方图,它可以区分白、黑、红、绿、蓝、橙色、黄色和紫色,如果你想分类更多颜色或者提高分类准确率,可以通过调整训练集数据或者考虑使用其他的特征如**颜色矩)**或者颜色相关图。你可以使用color_recognition_api实现实时的颜色识别,作者提供了两种识别方式,一种是摄像头实时识别颜色(co原创 2022-03-21 16:18:44 · 5759 阅读 · 1 评论 -
【事件驱动】【数码管识别】一(数码管检测(矩形检测函数解读))
1.根据轮廓的三个点两条线的夹角:三点的位置关系两个向量的夹角的余弦值等于两个向量的向量积除以两个向量的数量积。两个xiang'liang原创 2014-07-08 15:18:26 · 995 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】十七(imread()函数)
Mat img=imread("C:\\Users\\Desktop\\14.9.1.19.27\\111.bmp",0);参数为0,是原创 2014-09-16 15:28:12 · 792 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】七(改变图像尺寸)
原文地址:OpenCv中改变图像尺寸作者:鸳都学童首先初始目标图像尺寸:方法一:IplImage* dst= cvCreateImage( cvSize((size.width & -2)/2, (size.height & -2)/2), 8, 1 );分析:size.width & -2----size.width和-2做‘与’运算从补码算起,我们知道计算转载 2014-02-24 11:16:22 · 1507 阅读 · 0 评论 -
【VS2010学习笔记】【函数学习】一(MFC+OpenCV2.4.7读取摄像头之WM_TIMER消息处理函数的添加问题)
在启动定时器后,就需要添加定时器的消息处理函数,基本的步骤就是:在VS中,用户界面设计右击打开Class Wizard, 切换到Message选项卡,然后找到WM_TIMER这个message, 双击右边的OnTimer句柄,然后进入回调函数的代码。原创 2014-02-18 17:44:34 · 2220 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】一(MFC+OpenCV2.4.7读取摄像头之cvCaptureFromCAM()的索引问题
由于在程序的前面定义了全局变量CvCapture* capture;,所以capture默认值为零,这段代码开始执行时,首先进入第一个if语句,参照原创 2014-02-17 15:30:17 · 6866 阅读 · 0 评论 -
已知背景和物体的均值方差,求最佳分割阈值
原创 2016-09-28 15:37:37 · 2545 阅读 · 0 评论 -
【OpenCV学习笔记】【编程实例】五 (霍夫圆检测)
// GetCircle.cpp : 定义控制台应用程序的入口点。//圆形检测代码demo//载入数张包含各种形状的图片,检测出其中的圆形#include "cv.h"#include "highgui.h"#include #include #include #include "windows.h"using namespace std;int thresh = 50;Ip原创 2014-09-14 18:08:15 · 1943 阅读 · 0 评论 -
【OpenCV学习笔记】【函数学习】四(origin+imageData+cvcopy()函数+CvMemStorage 类型+CvPoint类型)
1.origin 在使用opencv显示图像时会出现图像倒立的情况,这与IplImage的origin属性有关系。origin为0表示顶左结构,即图像的原点是左上角,如果为1为左下角。 一般从硬盘读入的图片或者通过cvCreateImage方法创建的IplImage图片默认的origin为0,即显示的时候都是正的。 而由摄像头或者视频转载 2014-02-19 10:15:30 · 2364 阅读 · 0 评论 -
OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
转自:https://www.douban.com/note/265479171/cv::Matdepth/dims/channels/step/data/elemSizeThe class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It can be u转载 2016-04-21 10:10:26 · 10173 阅读 · 1 评论 -
【算法学习】【图像增强】基于拉普拉斯算子的图像锐化
对于求一个锐化后的像素点(sharpened_pixel),这个基于拉普拉斯算子的简单算法主要是遍历图像中的像素点,根据领域像素确定其锐化后的值计算公式:sharpened_pixel = 5 * current – left – right – up – down ;见下图:当一个运算是通过领域像素进行的时候,我们通常用一个矩阵来表示这种运算关系,也就是我们经常所说的 核 (转载 2015-08-15 22:18:46 · 10228 阅读 · 0 评论 -
【OpenCV学习笔记】【编程实例】二(图像的旋转和翻转)
有时从摄像头获取的图像不是转载 2014-09-01 18:35:58 · 3810 阅读 · 2 评论 -
【OpenCV学习笔记】【函数学习】三(cvGetCaptureProperty函数)
penCV中提供了一个函数cvGetCaptureProperty(Capture* cap,int property_index)函数来获取视频文件的一些属性,这是其中的OpenCV中属性的一些宏定义:#define CV_CAP_PROP_POS_MSEC 0#define CV_CAP_PROP_POS_FRAMES 1#define CV_CAP_PRO转载 2014-02-18 19:08:53 · 1005 阅读 · 0 评论 -
【OpenCV学习笔记】【异常处理】一(The Matrix is not continuous, thus its number of rows can not be changed)
在调试《Mastering OpenCV with Practical Computer Vision Projects》原创 2014-07-10 07:52:23 · 7655 阅读 · 0 评论 -
Opencv中Get2D()与cvSet2D() 的坐标问题
转自:http://www.itnose.net/detail/6118265.htmlcvGet2D() 的函数原型是 : CvScalar cvGet2D (const CvArr * arr, int idx0, int idx1); 函数返回的是一个CvScalar 容器,其参数中也有两个方向的坐标,idx0代表是的行,即高度,对应于我们平常坐标系的y,转载 2016-01-25 23:14:17 · 3074 阅读 · 0 评论 -
int main ( int argc, char** argv )的说明
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入argc是命令行总的参数个数 argv[]是argc个参数,argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int转载 2014-07-10 08:30:17 · 795 阅读 · 0 评论 -
图像文件读入和显示
//Image_Reading.cpp : 定义控制台应用程序的入口点。/**************************************************OpenCV2.4.7+VS2010控制台程序*by whd,2016*cite Quarryman 2012*函数功能读取图像*参考:http://wiki.opencv.org.cn/index.php/图像文原创 2016-07-23 20:30:04 · 654 阅读 · 0 评论 -
视频清晰度、色偏以及亮度异常检测
通过算法检测监控设备是否存在失焦、偏色、亮度异常等问题转载 2015-12-25 12:07:03 · 1708 阅读 · 0 评论 -
《访问Mat图像中每个像素的值》)
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7557063!!此篇是基于IplImage* (C接口或者说2.1之前版本的接口,新的Mat的访问方式请参考博文:《访问Mat图像中每个像素的值》)IplI转载 2016-01-10 11:30:34 · 1282 阅读 · 0 评论 -
使用OpenCV获取图像中某一点的像素值和修改某一点的像素值
使用OpenCV获取图像中某一点的像素值和修改某一点的像素值 int my_getpixel(){ IplImage *img=cvLoadImage("D:\\Case\\Train1.bmp",1); CvScalar s; for(int i=0;iheight;i++){转载 2016-01-09 23:06:40 · 17864 阅读 · 1 评论 -
【OpenCV学习笔记】【函数学习】五(颜色空间转换cvCvtColor()函数)
转载 2014-02-19 20:11:25 · 1038 阅读 · 0 评论 -
cvCloneImage()内存泄漏解决方法, cvCloneImage()和cvCopy()的区别
转自:http://blog.csdn.net/stellar0/article/details/8741759cvCloneImage()每次使用时编译器会分配新的内存空间,不会覆盖以前的内容,所以如果在循环中使用内存会迅速减小,每次用完都需要用cvRelease来释放。 解决方法是使用cvCopy函数代替。 cvCopy(pSrcImg,pImg,NULL); //转载 2017-10-23 19:48:21 · 818 阅读 · 0 评论