• 《学习OpenCV》课后习题解答2


    题目:(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 = cvCreateImage(cvSize(100, 100), IPL_DEPTH_8U, 3);
        cvZero(img);    
        int left = 20, top = 5, right = 40, bottom = 20;//左上方的点(20,5),右下方的点(40,20)
        for (; left <= right; left++)   //从左到右
        {
            *(cvPtr2D(img, left, top, NULL) + 1) = 255; //cvPtr2D指向(left,top)坐标元素的第一个通道R,想要得到G通道需要+1。同时注意这里的“*”的用法。
            *(cvPtr2D(img, left, bottom, NULL) + 1) = 255;
    
        }
        left = 20;
    
        for (; top <= bottom; top++)    //从上到下
        {
            *(cvPtr2D(img, left, top, NULL) + 1) = 255;
            *(cvPtr2D(img, right, top, NULL) + 1) = 255;
    
        }
    
        cvNamedWindow("rectangle", CV_WINDOW_AUTOSIZE);
        cvShowImage("rectangle", img);
        cvWaitKey(0);
    
        cvReleaseImage(&img);
        cvDestroyWindow("rectangle");
    }
  • 相关阅读:
    写一写这几天安卓开发遇到的坑
    安卓环境搭建
    正则表达式
    一段时间的总结
    路飞-登录页面
    路飞-腾讯云短信接口
    路飞-Redis
    路飞-git操作
    路飞-后台xadmin配置
    路飞-后台处理跨域问题
  • 原文地址:https://www.cnblogs.com/huahai/p/7271066.html
Copyright © 2020-2023  润新知