码迷,mamicode.com
首页 > 其他好文 > 详细

Opencv第三章

时间:2016-04-03 17:28:18      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

2. 下面这个练习是帮助掌握矩阵类型。创造一个三通道二维矩阵,字节类型,大小为100×100,并设置所有数值为0。

a. 在矩阵中使用void cvCircle(CvArr* img, CvPoint center, intradius, CvScalar color, int thickness=1, int line_type=8, int shift=0)画一个圆。

b. 使用第2章所学的方法来显示这幅图像。

#include <cv.h>
#include <highgui.h>
int main()
{
    CvMat *mat = cvCreateMat(100, 100, CV_32FC3);
    cvZero(mat);

    CvSize rect = cvSize(800, 800);
    IplImage* image = cvCreateImage(rect, IPL_DEPTH_8U, 3);

    CvPoint center = cvPoint(400, 400);
    int radius = 400;
    CvScalar color = cvScalar(100, 100, 100);
    cvCircle(image,center, radius, color, 1, 8, 0);
    
    cvNamedWindow("main", 1);
    //cvNamedWindow("main1", 1);
    cvShowImage("mian", image);
    //cvShowImage("main1", mat);
    cvWaitKey(0);
    cvReleaseImage(&image);
    cvReleaseMat(&mat);
    return 0;

}

3. 创建一个拥有三个通道的二维字节类型矩阵,大小为100x100,并将所有值赋为0。通过函数cvPtr2D 将指针指向中间的通道(“绿色”)。以(20,5)与(40,20)为顶点间画一个绿色的长方形。

#include <cv.h>
#include <highgui.h>
int main()
{
    CvSize size = cvSize(100, 100);
    IplImage *image = cvCreateImage(size, IPL_DEPTH_8U, 3); 
    cvZero(image);
    int left = 20;
    int right = 40;
    int top = 5;
    int bottom = 20;
    for (; top < bottom; top++)
    {
        for (; left < right; left++)
        {
            *(cvPtr2D(image, top, left)+1) = 255;
            //cvPtr2D 参数分别表示在当前的图中,坐标为(top,left)的位置 + 1 为绿色 ;+2 表示红色 ;+0 表示蓝色;
        }
        left = 20;
    }
    cvNamedWindow("main", 1);
    cvShowImage("main", image);
    cvWaitKey();
    cvReleaseImage(&image);
    cvDestroyWindow("main");
    return 0;
}

 

Opencv第三章

标签:

原文地址:http://www.cnblogs.com/chenyang920/p/5349993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!