加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

《学习OpenCV》第三章课后题1

发布时间:2020-12-14 02:31:58 所属栏目:大数据 来源:网络整理
导读:相关记录: a. cxtypes.h在OpenCV3以上中已经不存在了,相应的文件为“OpenCV3安装文件夹路径/opencv/build/include/opencv2/core/types_c.h” #include highgui.h #include cv.h #include stdio.h #define RAND_INT_MAX 256 /* * 《学习OpenCV》第三章第一

相关记录:
a. cxtypes.h在OpenCV3以上中已经不存在了,相应的文件为“OpenCV3安装文件夹路径/opencv/build/include/opencv2/core/types_c.h”

#include <highgui.h>
#include <cv.h>
#include <stdio.h>

#define RAND_INT_MAX 256

/* * 《学习OpenCV》第三章第一题 * 完成时间:16:31 3/1 星期五 2013 */
int main()
{
    /*------------------------------------*/
    // 选取一个负的浮点数
    float f = -3.589;

    // 取绝对值
    float abs_f = CV_IABS(f);

    // 四舍五入,取其极值
    int round_f = cvRound(abs_f);

    printf("absolute value: %fn",abs_f);
    printf("round value: %dn",round_f);
    /*------------------------------------*/
    CvRNG rng;
    rng = cvRNG(cvGetTickCount());

    // 产生10个随机整数和小数
    for(int i = 0; i < 10; i++)
    {
        printf("%dtrand integer: %dt",i,(cvRandInt(&rng) % RAND_INT_MAX ));
        printf("rand floating: %.4fn",cvRandReal(&rng));
    }
    /*------------------------------------*/
    // 将一个浮点型的CvPoint2D32f转换成一个整数型的CvPoint
    CvPoint2D32f point_2D32f = cvPoint2D32f(2.5,3.5);
    CvPoint point = cvPointFrom32f(point_2D32f);

    printf("---------------------------------------n");
    printf("CvPoint2D32f: %ft%fn",point_2D32f.x,point_2D32f.y);
    printf("Convert to CvPoint: %dt%dn",point.x,point.y);
    // 将一个整数型的CvPoint转换为浮点型的CvPoint2D32f
    CvPoint2D32f point_1 = cvPointTo32f(point);
    printf("Convert to CvPoint2D32f: %ft%fn",point_1.x,point_1.y);

    return 0;
}

绝对值宏定义:

/* absolute value without jumps */
#ifndef __cplusplus
#define CV_IABS(a) (((a) ^ ((a) < 0 ? -1 : 0)) - ((a) < 0 ? -1 : 0))
#else
#define CV_IABS(a) abs(a)
#endif
  1. 一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法迭代产生随机数序列。
  2. 随机数的“种子”就是产生随机数的第一次使用值,机制是通过一个比较复杂函数,将这个种子的值映射到随机数空间的某一个点上,并且产生的随机数均匀地(或者符合正态分布等)散步在空间中,以后产生的随机数都与前一个随机数有关。
  3. RNG : random number generation 随机数生成
    相关函数
    1.CvRNG cvRNG(int64 seed);
    使用64位长整形种子,初始化随机数生成器状态。
    cvGetTickCount();
    返回64位长整形的时间数据,在opencv中是为CvRNG设置的专用种子。
    2.unsigned cvRandInt(CvRNG* rng);
    返回均匀分布的随机32位无符号整型值,并更新RNG的状态 ; 使用模操作可以获得确定边界的整形数值。
    3.double cvRandReal(CvRNG* rng);
    返回均匀分布的随即浮点数,范围在0-1(不含1),并更新RNG的状态。

引用:qdsclove的博客
http://www.cnblogs.com/qdsclove/archive/2013/04/06/3002381.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读