《学习OpenCV》课后习题解答2】的更多相关文章

今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三的习题解答.笔者在做这些题目时遇到非常多困难,当我在网上寻找答案时却找不到,而林老师又不提供答案,所以我就想把自己做题时对题目怎样思考的写下来,为大家提供一些思路.当然,我对题目的理解不一定是正确的,假设各位博友发现错误请及时留言联系.谢谢!再次提醒:请不要以此博客作为通过考试的用途,还是更好学习.理解课程的途径! 希望我的博客对您的学习有所帮助! 本文出处:http://bl…
题目:(P126) 本章完整讲述了基本的输入/输出编程以及OpenCV的数据结构.下面的练习是基于前面的知识做一些应用,为后面大程序的实现提供帮助. a.创建一个程序实现以下功能:(1)从视频文件中读入数据:(2)讲读入数据转换为灰度图:(3)对图像做Canny边缘检测.将三个过程的处理结果显示到不同的窗口中,每个窗口根据其内容合理命名. b. 将所有三个步骤实现显示在一个图像中.提示:创建一个新的图像,其高度与原始图像相同,宽度为原来视频帧的3倍,将3幅图像分别复制到新的图像中:可使用指针:或…
题目:(P104) 使用cvCmp()创建一个掩码.加载一个真实的图像.使用cvsplit()将图像分割成红,绿,蓝三个单通道图像. a.找到并显示绿图. b.克隆这个绿图两次(分别命名为clone1和clone2). c.求出这个绿色平面的最大值和最小值. d.将clone1的所有元素赋值为theash=(unsigned char)((最大值-最小值)/2.0). e.将clone2的所有元素复制为0,然后调用函数cvCmp(green_image,clone1,clone2,CV_CMP_…
题目:(P104) 为一个图像创建多个图像头.读取一个大小至少为100*100的图像.另创建两个图像头并设置它们的origion,depth,nChannels和widthStep属性同之前读取的图像一样.在新的图像头中,设置宽度为20,高度为30.最后,将imageData指针分别指向像素(5,10)和(50,60)像素位置.传递这两个新的图像头给cvNot().最后显示最初读取的图像,在那个大图像中应该有两个矩形,矩形内的值是原始值的求反值. 解答: #include "cv.h"…
题目:(P104) 练习使用感兴趣区域(ROI).创建一个210*210的单通道图像并将其归0.在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组.也就是:外部边界为0,下一个内部边界应该为20,再下一个内部边界为40以此类推,直到最后内部值为200:所有的边界应该为10个像素的宽度.最后显示这个图形. 解答: (解题关键在于弄懂题目意思) #include "cv.h" #include "highgui.h" int main() { IplImag…
题目:(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, 100), IPL_DEPTH_8U, 3); cvZero(img); for…
题目:(P104) 创建一个拥有三个通道的二维字节类型矩阵,大小为100*100,并将所有值赋为0.通过函数cvPtr2D将指针指向中间的通道("绿色").以(20,5)与(40,20)为顶点间画一个绿色的长方形. 解答: (此题的关键在于懂得函数cvPtr2D的用法) #include "cv.h" #include "highgui.h" int main(int argc, char** argv) { IplImage *img; img…
题目:(P126) 创建一个程序,使其读入并显示一幅图像.当用户鼠标点击图像时,获取图像对应像素的颜色值(BGR),并在图像上点击鼠标处用文本将颜色值显示出来. 解答: 本题关键是会用cvGet2D获得BGR值,以及会用鼠标点击事件和回调函数,还有显示文本值. #include<cv.h> #include<highgui.h> #include<iostream> using namespace std; char* str = (char*)malloc(30 *…
题目:(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* ms_node, my_struct* ms) b. 创建一个元素为my_struct结构…
题目:(P104) 下面这个练习是帮助掌握矩阵类型.创造一个三通道二维矩阵,字节类型,大小为100*100,并设置所有数值为0. a.在矩阵中使用cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness CV_DEFAULT(1), int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0));画一个圆. b.使用第2章所学的方法来显示这幅图像. 源…