zoukankan      html  css  js  c++  java
  • 《学习OpenCV》课后习题解答4

    题目:(P104)
    练习使用感兴趣区域(ROI)。创建一个210*210的单通道图像并将其归0。在图像中使用ROI和cvSet()建立一个增长如金字塔状的数组。也就是:外部边界为0,下一个内部边界应该为20,再下一个内部边界为40以此类推,直到最后内部值为200;所有的边界应该为10个像素的宽度。最后显示这个图形。

    解答:
    (解题关键在于弄懂题目意思)

    #include "cv.h"
    #include "highgui.h"
    
    int main()
    {
        IplImage* single_img = cvCreateImage(cvSize(210, 210), 8, 1);//210*210 单通道
        cvZero(single_img);
    
    
        int Width = 210, Height = 210;
        int maxPixel = 200;
        int value = 0;
        int i, j;
        for (i = 0, j = 0; i <= Width, j <= Height;)
        {
            //  for(i = 0; i <= Width;)
            //  {
            cvSetImageROI(single_img, cvRect(i, j, Width - i, Height - j)); //set the ROI of the single_img
                                                                            //  cvSetImageROI(single_img, cvRect(0, 0, Width, Height));
            cvSet(single_img, cvScalar(value, 0, 0));
    
            value += 20;
            cvResetImageROI(single_img);
            //  }
            i += 10;//边界都为10个像素宽度
            j += 10;
            if (value == maxPixel)//超过最大像素值200时,退出
            {
                break;
            }
        }
    
        cvNamedWindow("ROI", 0);
        cvShowImage("ROI", single_img);
    
        cvWaitKey(0);
        cvDestroyWindow("ROI");
        cvReleaseImage(&single_img);
    
        return 0;
    }
    

    结果图为:
    这里写图片描述

  • 相关阅读:
    分析问题的方法
    听听冯洛伊曼的概念机器的齿轮声
    Nginx支持WebSocket配置
    原型模式
    redis日志位置
    修改centos7远程端口和nginx安全设置
    Java输出小端二进制文件
    centos7安装Java8
    Nginx教程
    centos7.6安装postgresql10
  • 原文地址:https://www.cnblogs.com/huahai/p/7271064.html
Copyright © 2011-2022 走看看