OpenCV学习笔记之课后习题练习3-5

OpenCV学习笔记之课后习题练习2-5

练习使用感兴趣区域(ROI)。创建一个210*210的单通道图像并将其归0.在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组。

参考博文:www.cnblogs.com/tingshuixuan2012/p/OpenCVExercises3_5.html

www.cnblogs.com/vitah/archive/2013/05/22/3092083.html

 1 /*ch3_lx3_5.cpp
 2   添加功能:利用cvPtr2D函数画矩形
 3   本程序是learning opencv这本书的课后习题练习
 4   欢迎提出问题一起讨论*/
 5 #include "cv.h"
 6 #include "highgui.h"
 7
 8 int main(int argc, char** argv)
 9 {
10     IplImage *img;
11     img = cvCreateImage(cvSize(210,210),IPL_DEPTH_8U,1);
12     cvZero(img);
13
14     int interset_x = 0;
15     int interset_y = 0;
16     int offset_x = img->width;
17     int offset_y = img->height;
18     int add = 0;
19    // bool condition = true;
20
21     while(add<200)
22     {
23         cvSetImageROI(img,cvRect(interset_x,interset_y,offset_x,offset_y));
24         cvSet(img,cvScalar(255-add));
25         cvResetImageROI(img);
26         interset_x +=10;
27         interset_y +=10;
28         offset_x -= 20;
29         offset_y -= 20;
30         add=add+20;
31     }
32 cvNamedWindow("jinzita",1);
33 cvShowImage("jinzita",img);
34 cvWaitKey(0);
35 cvDestroyWindow("jinzita");
36 cvReleaseImage(&img);
37 return(0);
38 }

时间: 2024-10-08 10:00:12

OpenCV学习笔记之课后习题练习3-5的相关文章

OpenCV学习笔记之课后习题练习3-4

练习:创建一个大小为100*100的三通道RGB图像.将它的元素全部置0.使用指针算法以(20,5)与(40,20)为顶点绘制一个绿色平面. 参考博文:blog.csdn.net/qq_20777367/article/details/46365191 使用指针算法首先要知道画布的指针,然后取得要修改位置的指针.即img->imageData+top*img->widthStep+left*nchannels+channel. 首先我们要清楚图像色素的存储是以元素为单位的,而元素内有多少个通道

OpenCV学习笔记之课后习题练习2-5

5.对练习4中的代码进行修改,参考例2-3,给程序加入滚动条,使得用户可以动态调节缩放比例,缩放比例的取值为2-8之间.可以跳过写入磁盘操作,但是必须将变换结果显示在窗口中. 参考博文:blog.csdn.net/mengyanshizhe/article/details/45915525?reload blog.sina.com.cn/s/blog_4b0020f30101cgok.html 没有找到方法设置滚动条的下限值为2,故令滚动条的值为0时,缩放比例为1. 利用cvResize函数实现

Opencv学习笔记(六)SURF学习笔记

原创文章,转载请注明出处:http://blog.csdn.net/crzy_sparrow/article/details/7392345 本人挺菜的,肯定有非常多错误纰漏之处 ,希望大家不吝指正. 看了harris角点检測之后,開始研究SURF角点检測,发现挺复杂的,一时也仅仅了解了大概,把了解的东西总结下,以便下次深入学习. SURF角点检測算法是对SIFT的一种改进,主要体如今速度上,效率更高.它和SIFT的主要差别是图像多尺度空间的构建方法不同. 在计算视觉领域,尺度空间被象征性的表述

opencv学习笔记(四)投影

opencv学习笔记(四)投影 任选了一张图片用于测试,图片如下所示: 1 #include <cv.h> 2 #include <highgui.h> 3 using namespace std; 4 using namespace cv; 5 int main() 6 { 7 IplImage * src = cvLoadImage("cat.png", 0); //强制转化读取图像为灰度图 8 cvShowImage("灰度图像", s

OpenCV学习笔记(01)我的第一个OpenCV程序(环境配置)

昨天刚刚考完编译原理,私心想着可以做一些与考试无关的东西了.一直想做和图像处理相关的东西,趁这段时间有空学习一下OpenCV,搭建环境真是一件麻烦的事情,搞了近三个小时终于OK了.先来张图: 大致描述一下步骤吧: 一.安装前准备 1.VS2012(网上看到很多用的VS2010,但是基本不影响) 2.OpenCV 安装包(我下载的是最新的2.4.9) 二.安装OpenCV 1.解压OPenCV 说是安装,其实就是解压,OpenCV的Windows安装程序就是一个自解压程序: 这里我解压到C:\Pr

opencv学习笔记(03)——遍历图像(迭代器法)

1 #include <opencv2\highgui\highgui.hpp> 2 #include <opencv2\imgproc\imgproc.hpp> 3 #include <opencv2\core\core.hpp> 4 5 void colorReduce(cv::Mat& img, int div=64); 6 7 8 int main() 9 { 10 cv::Mat img_orginal = cv::imread("F:\\i

OpenCV学习笔记[3]Java Demo人脸识别

OpenCV学习笔记:Java Demo人脸识别 [简介] 我记得在很久以前,CSDN似乎搞过一个活动,给一个橘子林的照片,让程序计算相片里有多少个橘子.之所以对这个问题记忆犹新,是因为在专业学习初期,相比于排序遍历搜索等简单算法而言,"图像识别"算法一直是难以理解的东西,而我偏偏又痴迷于此,不管自己多么无知,对于令我迷惑的问题总是充满着解决的渴望. 通过对OpenCV的初步了解,我发现图像识别的很多问题都可以用它方便的解决,本次将是一个来自官方的人脸识别的实例,我们提供图像,使用内置

OpenCV 学习笔记(模板匹配)

OpenCV 学习笔记(模板匹配) 模板匹配是在一幅图像中寻找一个特定目标的方法之一.这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否"相似",当相似度足够高时,就认为找到了我们的目标. 在 OpenCV 中,提供了相应的函数完成这个操作. matchTemplate 函数:在模板和输入图像之间寻找匹配,获得匹配结果图像 minMaxLoc 函数:在给定的矩阵中寻找最大和最小值,并给出它们的位置 在具体介绍这两个函数之前呢,我们还要介绍一个概念,就是如何来评价两

openCV学习笔记(2)--cvCreateTrackbar

int cvCreateTrackbar( const char* trackbar_name, //滑动条的名称 const char* window_name, //窗口的名称,滑动条不会遮挡图像 int* value, //当滑动条被拖到时,OpenCV会自动将当前位置所代表的值传给指针指向的整数 int count, //滑动条所能达到的最大值 CvTrackbarCallback on_change //可选的回调函数,回调函数可参见http://wapedia.mobi/zhtrad