OpenCV
花海_
一个不务正业的程序员
展开
-
OpenCV彩色图像转灰度图
核心函数cvSplit()。#include<cv.h>#include<highgui.h>int main(int argc, char** argv){ IplImage* img = cvLoadImage(argv[1]); IplImage* imgR = cvCreateImage(cvGetSize(img), 8, 1); IplImage* imgG原创 2016-05-24 10:31:32 · 2313 阅读 · 0 评论 -
OpenCV漫水填充算法示例代码
#include<cv.h>#include<highgui.h>int main(int argc, char** argv){ IplImage* img = cvLoadImage(argv[1]); cvNamedWindow("原图", CV_WINDOW_AUTOSIZE); cvShowImage("原图", img); cvFloodFill(img原创 2016-05-23 20:52:26 · 488 阅读 · 0 评论 -
OpenCV膨胀和腐蚀示例代码
#include<cv.h>#include<highgui.h>int main(int argc, char** argv){ IplImage* img = cvLoadImage(argv[1]); IplImage* img1 = cvLoadImage(argv[1]); IplImage* img2 = cvLoadImage(argv[1]); cv原创 2016-05-23 19:04:54 · 1004 阅读 · 0 评论 -
OpenCV平滑处理示例代码
#include<cv.h>#include<highgui.h>int main(int argc, char** argv){ IplImage* img = cvLoadImage(argv[1]); IplImage* img1 = cvLoadImage(argv[1]); IplImage* img2 = cvLoadImage(argv[1]); I原创 2016-05-23 15:51:12 · 353 阅读 · 0 评论 -
《学习OpenCV》课后习题解答9
题目:(P126) 创建一个程序,使其读入并显示一幅图像。当用户鼠标点击图像时,获取图像对应像素的颜色值(BGR),并在图像上点击鼠标处用文本将颜色值显示出来。原创 2016-05-22 21:36:35 · 495 阅读 · 0 评论 -
《学习OpenCV》课后习题解答8
题目:(P126) 本章完整讲述了基本的输入/输出编程以及OpenCV的数据结构。下面的练习是基于前面的知识做一些应用,为后面大程序的实现提供帮助。 a.创建一个程序实现以下功能:(1)从视频文件中读入数据;(2)讲读入数据转换为灰度图;(3)对图像做Canny边缘检测。将三个过程的处理结果显示到不同的窗口中,每个窗口根据其内容合理命名。 b. 将所有三个步骤实现显示在一个图像中。提示:创建原创 2016-05-22 10:34:43 · 394 阅读 · 0 评论 -
一个简单的播放视频的小程序
用于播放硬盘中的视频文件。#includeint main(int argc, char** argv){ cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE); CvCapture* capture = cvCreateFileCapture(argv[1]); IplImage* frame; while(1) { frame =原创 2016-05-22 15:59:27 · 3224 阅读 · 0 评论 -
《学习OpenCV》课后习题解答7
题目:(P105) 创建一个结构,结构中包含一个整数,一个CvPoint和一个 CvRect;称结构体为“my_struct”。 a. 写两个函数:void Write_my_strct(CvFileStorage* fs, const char * name, my_struct* ms) 和 void read_my_struct(CvFileStorage* fs, CvFileNode*转载 2016-05-22 09:39:20 · 366 阅读 · 0 评论 -
OpenCV中的按钮问题
在HighGUI中,没有显示提供任何形式的按钮。一般有两种方法替代: 1.用只有两个状态的滑动条来替代按钮。开关(switch)事实上就是只有两个状态的滑动条,这两个状态是on和off。然后通过回调函数来实现相关的功能。 实例源码(使用滑动条实现一个开关功能)#include<cv.h>#include<highgui.h>int g_switch_value = 0;void switch_原创 2016-05-21 15:36:20 · 5790 阅读 · 1 评论 -
《学习OpenCV》课后习题解答6
题目:(P104) 使用cvCmp()创建一个掩码。加载一个真实的图像。使用cvsplit()将图像分割成红,绿,蓝三个单通道图像。 a.找到并显示绿图。 b.克隆这个绿图两次(分别命名为clone1和clone2)。 c.求出这个绿色平面的最大值和最小值。 d.将clone1的所有元素赋值为theash=(unsigned char)((最大值-最小值)/2.0)。 e.将clone原创 2016-05-20 22:21:06 · 468 阅读 · 0 评论 -
《学习OpenCV》课后习题解答5
题目:(P104) 为一个图像创建多个图像头。读取一个大小至少为100*100的图像。另创建两个图像头并设置它们的origion,depth,nChannels和widthStep属性同之前读取的图像一样。在新的图像头中,设置宽度为20,高度为30.最后,将imageData指针分别指向像素(5,10)和(50,60)像素位置。传递这两个新的图像头给cvNot()。最后显示最初读取的图像,在那个原创 2016-05-20 15:43:22 · 430 阅读 · 0 评论 -
图像的深度和通道概念区分
图像的深度:图片是由一个个像素点构成的,所有不同颜色的像素点构成了一副完整的图像,计算机存储图片是以二进制来进行的。1 bit : 用一位来存储,那么这个像素点的取值范围就是0或者1,那么我们看来这幅图片要么是黑色要么是白色。4 bit : 取值范围为 0 到 2 的4次方8 bit : 来存储像素点的取值范围为 0 到 2 的8次方以此类推,我们把计算机存储单个像素点所用到的bit为称之为图像的深转载 2016-05-20 15:23:11 · 10323 阅读 · 0 评论 -
Unity实践
题目:(P104) 练习使用感兴趣区域(ROI)。创建一个210*210的单通道图像并将其归0。在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组。也就是:外部边界为0,下一个内部边界应该为20,再下一个内部边界为40以此类推,直到最后内部值为200;所有的边界应该为10个像素的宽度。最后显示这个图形。解答: (解题关键在于弄懂题目意思)#include "cv.h"#inclu原创 2016-05-20 13:49:32 · 571 阅读 · 0 评论 -
《学习OpenCV》课后习题解答3
题目:(P104) 创建一个大小为100*100的三通道RGB图像。将它的元素全部置0.使用指针算法以(20,5)与(40,20)为项点绘制一个绿色平面。解答:#include "cv.h" #include "highgui.h" int main(int argc, char** argv) { IplImage* img = cvCreateImage(cvSize(100,原创 2016-05-20 13:13:17 · 598 阅读 · 0 评论 -
《学习OpenCV》课后习题解答2
题目:(P104) 创建一个拥有三个通道的二维字节类型矩阵,大小为100*100,并将所有值赋为0。通过函数cvPtr2D将指针指向中间的通道(“绿色”)。以(20,5)与(40,20)为顶点间画一个绿色的长方形。解答: (此题的关键在于懂得函数cvPtr2D的用法)#include "cv.h" #include "highgui.h" int main(int argc, char*原创 2016-05-20 11:17:31 · 475 阅读 · 0 评论 -
《学习OpenCV》课后习题解答1
题目:(P104) 下面这个练习是帮助掌握矩阵类型。创造一个三通道二维矩阵,字节类型,大小为100*100,并设置所有数值为0。 a.在矩阵中使用cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness CV_DEFAULT(1),原创 2016-05-20 09:52:59 · 887 阅读 · 0 评论 -
关于命令行参数argv(《学习OpenCV》)
在《学习OpenCV》这本书中,很多示例代码都用到了命令行参数。作为新手,之前总是很困扰,不知道怎么用。偶然的机会终于略知一二了。 在Visual Studio中,我们可以自行设置命令行参数。 如在这个示例程序中,我们想把图像存入argv[1]。 方法如下: 依次点击,项目、属性、配置属性、调试、命令参数。出现下面的界面: 然后进行编辑,即输入图像路径。如:E:\Lena.jpg。原创 2016-05-18 13:56:51 · 18182 阅读 · 3 评论 -
OpenCV尺寸调整
#include<cv.h>#include<highgui.h>int main(int argc, char** argv){ IplImage* img = cvLoadImage(argv[1]); IplImage* img1 = cvLoadImage(argv[2]); cvNamedWindow("原图1", CV_WINDOW_AUTOSIZE);原创 2016-05-23 21:37:42 · 534 阅读 · 0 评论