![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《学习OpenCV》课后题
可峰科技
1-不要试图去证明自己比别人能力强,
是因为不自信的人才去证明自己的能力,
大家要记住,
就是你在团队不要找同样的人,
团队应该找不同样的人,
就是你把自己的能力放下,
你是要有一种新的能力 把大家团结起来,
赋能别人的能力,
唯一的办法,
这帮聪明的人没有办法一起工作,
但是我在 就可以让他们一起工作,
这是一个强大的Leadership能力。
2-读书读的好的人,很少会想到去创业,而读书读的差的人,没人要他,他容易去创业,
所以不管你会读书不会读书,你有资源没有资源,机会都有,天生我材必有用,
你今天去想清楚,这世界成功的不是一条路,有很多的路
3-学些经济知识
展开
-
《学习OpenCV》第三章课后题3
题目说明:创建一个拥有三个通道的二维字节类型矩阵,大小为100*100,并将所有值赋为0。通过函数cvPtr2D将指针指向中间的通道(“绿色”)。以(20,5)与(40,20)为顶点间画一个绿色的长方形。#include <highgui.h> #include <cv.h> #include <stdio.h>#define ROWS 100 #define COLS 100// 定义绿色长方形的原创 2015-06-17 15:02:37 · 438 阅读 · 0 评论 -
《学习OpenCV》第四章课后题3-b
题目说明: 在一个独立的窗口中,使用画图函数画一个图表,分别用蓝、绿和红色表示选中区域中每种颜色的像素数量。这是选定区域的颜色直方图。x坐标系表示像素值范围在0-31,32-63,…,223,255;y坐标表示在选定区域中对应像素的数量。对每一个颜色通道(BGR)都进行统计。#include "cv.h" #include "highgui.h"//鼠标回调函数 void my_mouse_cal转载 2015-07-19 17:59:39 · 371 阅读 · 0 评论 -
《学习OpenCV》第四章课后题4
题目说明:创建一个程序读入和显示视频文件,并可以使用滑动条控制视频文件的播放。一个滑动条用来控制视频播放位置,以10为步长跳进。另一个滑动条用来控制停止/播放。#include <highgui.h> #include <cv.h>int g_slider_position = 0; CvCapture* g_capture = NULL;int i = 0; int g_slider_positi转载 2015-07-20 10:00:12 · 347 阅读 · 0 评论 -
《学习OpenCV》第四章课后题5-a
题目说明:创建一个简单画图程序 a.创建一个程序,可以创建一个图像,并将图像所有像素值设置为0,然后将其显示出来。允许用户通过鼠标左键画线、圆、椭圆以及多边形。并使其能在右击鼠标时,实现橡皮擦功能。#include <highgui.h> #include <cv.h> #include <math.h>#define IMG_WIDTH 512 // 图像宽 #define IMG_HEI转载 2015-07-20 19:37:28 · 462 阅读 · 0 评论 -
《学习OpenCV》第四章课后题7
题目说明:透视变换 a.写一个程序读入一幅图像,并使用数字键1~9控制变换矩阵(参考cvWarpPerspective()函数)。按住任意1~9中的任意一个按键,透视变换矩阵中对应数据会变大。同时按下Shift键时,对应数据会减小(最小为0)。每次改变一个数据,在两个窗口中显示图像:原始图像和变换后的图像。 b.添加放大、缩小功能。 c.添加旋转图像功能。代码使用说明:由于opencv中没有找原创 2015-09-08 21:28:14 · 483 阅读 · 0 评论 -
《学习OpenCV》第四章课后题6
题目说明: 写一个程序,使其创建一幅图像,然后将图像所有像素值置为0,显示出来。当用户点击一个位置,便可以在此位置输入一个标签。允许使用Enter键进行编辑,以及实现一个退出键。按Enter键可以修改当前位置的标签。#include <highgui.h> #include <cv.h> #define IMG_WIDTH 512 #define IMG_HEIGHT 512 CvFont f转载 2015-08-22 22:02:05 · 450 阅读 · 0 评论 -
《学习OpenCV》第四章课后题8
题目说明: 有趣的人脸程序。画一个骷髅头并保存在磁盘文件中。使之能读入骷髅头图像。 a、检测到人脸,便将人脸矩形区域中的图像用骷髅头图像代替。提示:cvConvertImage()可以改变图像的大小,或者使用cvSize()函数。可以将矩形区域设置成ROI,然后使用cvCopy()复制缩放后的图像。 b、加入一个滑动条,在范围0.0~0.1之间设置10位置。使用滑动条来调节骷髅头与矩形区域内图转载 2015-09-15 21:13:42 · 393 阅读 · 0 评论 -
《学习OpenCV》第五章课后题1
题目说明: 载入一个带有有趣纹理的图像。使用cvSmooth()函数以多种方法平滑图像,参数为smoothtype=CV_GAUSSIAN。 a.使用对称的平滑窗口,大小依次为3*3,5*5,9*9和11*11,并显示出结果。 b.用5*5高斯滤波器平滑图像两次和用11*11平滑器平滑一次的输出结果是接近相同吗?为什么?#include <opencv/highgui.h> #include转载 2015-10-21 14:20:52 · 556 阅读 · 0 评论 -
《学习OpenCV》第五章课后题3
题目说明: 加载一个有趣的图像。再次使用高斯滤波器通过cvSmooth()函数对其进行模糊操作。 a.设param1=param2=9.依次将param3设为几个不同的值(例如,1,4和6),并显示结果。 b.设param1=param2=0,然后也设param3分别等于1、4和6,并显示结果。这时和上题的结果有什么不同吗?为什么? c.再一次设param1=param2=0,但这时令par转载 2015-10-22 21:55:09 · 393 阅读 · 0 评论 -
《学习OpenCV》第五章课后题2
题目说明:显示滤波器的效果。建立一个100*100单通道图像。将图像全部像素置零,然后设置中心像素值等于255. a.利用5*5高斯滤波器平滑此图像并显示结果。你发现了什么? b.改用9*9高斯滤波器重复a操作。 c.如果你重新对原始图像用*5*5过滤器平滑两次,会出现什么结果?与用9*9过滤器的结果对比,它们相似吗?为什么?#include <stdio.h> #include <openc转载 2015-10-22 15:27:27 · 434 阅读 · 0 评论 -
《学习OpenCV》第四章课后题9
题目说明:图像稳定。(运动跟踪或光流法代码)在一个更大的窗口中创建并显示视频图像。轻轻移动摄像机,并用光流法的向量将图像显示在大窗口中,并保持画面稳定。这是一个最基本的图像稳定技术。 程序操作方法:运行程序后,点击鼠标左键标定跟踪点,点击右键完成标定,4个标定点可启动图像稳定窗口(这里图像稳定是:使用透视投影变换将新的图像投影到原来的图像平面,实现图像稳定)#include <opencv2/vi原创 2015-10-11 11:39:05 · 686 阅读 · 0 评论 -
《学习OpenCV》第五章课后题4
题目说明:用摄像机拍摄同一场景的两幅照片,两幅照片的拍摄位置略有不同。将两幅照片载入电脑,分别命名为src1和src2。 a.将src1减去src2并求绝对值,将结果记为diff12并显示。在理想情况下,diff12将是黑色的,为什么? b.对diff12先进行腐蚀操作cvErode(),然后进行膨胀操作cvDilate(),记结果为cleandiff,并显示出来。 c.对diff12先进行膨转载 2015-11-11 16:09:05 · 733 阅读 · 0 评论 -
《学习OpenCV》第四章课后题1-b&c
题目说明: b.将所有三个步骤实现显示在一个图像中。 提示:创建一个新的图像,其高度与原始图像相同,宽度为原来视频的3倍,将3幅图像分别复制到新的图像中:可使用指针;或者更巧妙地创建三个图像头,三个图像头分别指向图像数据的开始处,1/3处和2/3处,然后使用函数cvCopy()复制。 c.在图像的三个不同部分写上合适的文字标签方法一:使用三个图像头#include <highgui.h> #i转载 2015-07-18 16:10:47 · 455 阅读 · 0 评论 -
《学习OpenCV》第四章课后题3-a
题目说明: 创建一个程序读入并显示一幅图像。 a.允许用户在图像中选择一个矩形区域,然后通过按住鼠标按键画一个矩形。当鼠标键放开,高亮显示矩形框。注意,在内存中保留一个原始图像的副本,图像恢复为原始图像并重新开始绘矩形。#include <highgui.h> #include <cv.h>/* 矩形框 */ CvRect rect;bool draw = false; // 标记是否在画I转载 2015-07-18 17:35:27 · 375 阅读 · 0 评论 -
《学习OpenCV》第四章课后题1-a
题目说明: a创建一个程序实现以下功能:(1)从视频文件中读入数据;(2)将读入数据转换为灰度图;(3)对图像做Canny边缘检测。将三个过程的处理结果显示到不同的窗口中,每个窗口根据其内容合理命名。#include <highgui.h> #include <cv.h>int main() { char * file_path = "E:/song.mp4"; CvCapture转载 2015-07-18 11:11:46 · 430 阅读 · 0 评论 -
《学习OpenCV》第三章课后题1
相关记录: a. cxtypes.h在OpenCV3以上中已经不存在了,相应的文件为“OpenCV3安装文件夹路径/opencv/build/include/opencv2/core/types_c.h”#include <highgui.h> #include <cv.h> #include <stdio.h>#define RAND_INT_MAX 256/* * 《学习OpenCV》第三章转载 2015-06-16 17:11:04 · 338 阅读 · 0 评论 -
《学习OpenCV》第三章课后题4
题目说明:创建一个拥有三个通道的二维字节类型矩阵,大小为100*100,并将所有值赋为0.通过函数cvPtr2D将指针指向中间的通道(“绿色”)。以(20,5)与(40,20)为顶点间画一个绿色的长方形。#include <highgui.h> #include <cv.h> #include <stdio.h>#define ROWS 100 #define COLS 100// 定义绿色长方形的转载 2015-06-17 11:35:08 · 471 阅读 · 0 评论 -
《学习OpenCV》第三章课后题5
题目说明:练习使用感兴趣区域(ROI)。创建一个210*210的单通道图像并将其归0。在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组。也就是:外部边界为0,下一个内部边界应该为20,再下一个内部边界为40依次类推,直到最后内部值为200;所有的边界应该为10个像素的宽度,最后显示这个图形。#include <highgui.h> #include <cv.h> #include <s原创 2015-06-17 16:15:19 · 447 阅读 · 0 评论 -
《学习OpenCV》第三章课后题2
题目说明:创造一个三通道二维矩阵,字节类型,大小为100*100,并设置所有数值为0。画一个圆,然后显示。#include <highgui.h> #include <cv.h> #include <stdio.h>#define ROWS 400 #define COLS 400int main() { // 创造一个三通道二维矩阵,大小为ROWS*COLS CvMat* mat =转载 2015-06-17 10:24:01 · 358 阅读 · 0 评论 -
《学习OpenCV》 第二章 课后题3
题目叙述:结合例2-5中的doPyrDown()创建一个程序,使其从摄像机读入视频数据并将缩放变换后的彩色图像存入磁盘。#include "cv.h" #include "highgui.h" #include <stdio.h>IplImage* doPyrDown( IplImage* in ) { // Best to make sure input image is divisi原创 2015-06-03 15:59:15 · 423 阅读 · 0 评论 -
《学习OpenCV》第三章课后题6
题目说明:为一个图像创建多个图像头。读取一个大小至少为100*100的图像。另创建两个图像头并设置它们的origion,depth,nChannels和widthStep属性同之前读取的图像一样。在新的图像头中,设置宽度为20,高度为30.最后将imagedata指针分别指向像素(5,10)和(50,60)像素位置。传递这两个新的图像头给cvNot()。最后显示最初读取的图像,在那个大图像中应该有两原创 2015-06-17 18:12:30 · 403 阅读 · 0 评论 -
《学习OpenCV》第三章课后题7
题目说明: 使用cvCmp()创建一个掩码。加载一个真实的图像。使用cvSplit()将图像分割成红,绿,蓝三个单通道图像。 a.找到并显示绿图 b.克隆这个绿图两次(分别命名为clone1和clone2)。的 c.求出这个绿色平面的最大值和最小值。 d.将clone1所有元素赋值为thresh=(unsigned char)((最大值-最小值)/2.0)。 e.将clone2所有元素赋原创 2015-06-19 11:03:22 · 533 阅读 · 0 评论 -
《学习OpenCV》第三章课后题8-a
题目说明:创建一个结构,结构中包含一个整数,一个CvPoint和一个CvRect;称结构为“my_struct”。 a.写两个函数:void write_my_struct(CvFileStorage * fs, const char* name, my_struct* ms)和void read_my_struct(CvFileStorage* fs, CvFileNode* ms_node,转载 2015-07-09 21:29:56 · 358 阅读 · 0 评论 -
《学习OpenCV》第二章 课后题5
题目叙述:给程序加入滚动条,使得用户可以动态调节缩放比例,缩放比例的取值为2~8之间。可以跳过写入磁盘操作,但是必须将变换结果显示在窗口中。#include "cv.h" #include "highgui.h" #include <stdio.h> int pos = 2 ;// Convert a video to grayscale // argv[1]: input video file /原创 2015-06-04 09:44:50 · 390 阅读 · 0 评论 -
《学习OpenCV》第三章课后题8-b
题目说明:创建一个结构,结构中包含一个整数,一个CvPoint和一个CvRect;称结构为“my_struct”。 a.写两个函数:void write_my_struct(CvFileStorage * fs, const char* name, my_struct* ms)和void read_my_struct(CvFileStorage* fs, CvFileNode* ms_node,转载 2015-07-09 23:25:19 · 314 阅读 · 0 评论 -
《学习OpenCV》第四章课后题2
题目说明: 创建一个程序,使其读入并显示一幅图像。当用户鼠标点击图像时,获取图像对应像素的颜色值(BGR),并在图像上点击鼠标处用文本将颜色值显示出来。 a.对于练习1b,在三幅图像中任何地方点击鼠标,将当前图像的坐标显示于点击鼠标处。#include <highgui.h> #include <cv.h>CvFont font; //鼠标事件回调函数 void my_mouse_callbac转载 2015-07-18 16:40:26 · 388 阅读 · 0 评论 -
《学习OpenCV》第五章课后题5
题目说明:首先拍摄一张某场景的照片,然后摄像机不动,在此场景中心位置放一个咖啡杯,再拍摄一张照片,将其载入电脑并都转换为8位灰度图像。 a.取其差的绝对值并显示结果,它应该是一个带有噪声的咖啡杯掩码。 b.对结果图像进行二值化阈值操作,剔除噪声的同时并保留咖啡杯。超过阈值的像素应该设为255.显示结果。 c.在图像上进行CV_MOP_OPEN操作,以进一步清除噪声。#include <open原创 2015-11-13 10:23:30 · 599 阅读 · 0 评论