ConvertScale,cvConvert , cvScale

46 篇文章 0 订阅
14 篇文章 0 订阅

ConvertScale

使用线性变换转换数组

void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );

#define cvCvtScale cvConvertScale

#define cvScale cvConvertScale

#define cvConvert( src, dst ) cvConvertScale( (src), (dst), 1, 0 )

src

输入数组.

dst

输出数组

scale

比例因子.

shift

该加数被加到输入数组元素按比例缩放后得到的元素上

函数 cvConvertScale 有多个不同的目的因此就有多个同义函数(如上面的#define所示)。该函数首先对输入数组的

元素进行比例缩放,然后将shift加到比例缩放后得到的各元素上,即: dst(I)=src(I)*scale + (shift,shift,...),最后可

选的类型转换将结果拷贝到输出数组。


多通道的数组对各个通道是独立处理的。

类型转换主要用舍入和溢出截断来完成。也就是如果缩放+转换后的结果值不能用输出数组元素类型值精确表达,就

设置成在输出数组数据轴上最接近该数的值。


如果 scale=1, shift=0 就不会进行比例缩放. 这是一个特殊的优化,相当于该函数的同义函数名:cvConvert

如果原来数组和输出数组的类型相同,这是另一种特殊情形,可以被用于比例缩放和平移矩阵或图像,此时相当于该

函数的同义函数名:cvScale。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Delphi-OpenCV 进行两张图像对比的示例代码: ```delphi uses CvTypes, CvImgProc, CvHighgui; function CompareImages(const Image1, Image2: string): Single; var Img1, Img2: pIplImage; Hist1, Hist2: pCvHistogram; Mat1, Mat2: pCvMat; begin // 读取图像 Img1 := LoadImage(Image1); Img2 := LoadImage(Image2); // 转换为灰度图像 cvCvtColor(Img1, Img1, CV_BGR2GRAY); cvCvtColor(Img2, Img2, CV_BGR2GRAY); // 计算直方图 Hist1 := cvCreateHist([256], CV_HIST_ARRAY, cvCreateMat(1, 256, CV_32FC1), 1); Hist2 := cvCreateHist([256], CV_HIST_ARRAY, cvCreateMat(1, 256, CV_32FC1), 1); Mat1 := cvCreateMat(Img1.height, Img1.width, CV_8UC1); Mat2 := cvCreateMat(Img2.height, Img2.width, CV_8UC1); cvConvert(Img1, Mat1); cvConvert(Img2, Mat2); cvCalcHist(@Mat1, Hist1); cvCalcHist(@Mat2, Hist2); // 比较直方图 Result := cvCompareHist(Hist1, Hist2, CV_COMP_CORREL); // 释放资源 cvReleaseMat(@Mat1); cvReleaseMat(@Mat2); cvReleaseHist(@Hist1); cvReleaseHist(@Hist2); cvReleaseImage(@Img1); cvReleaseImage(@Img2); end; ``` 在上述代码中,`Image1` 和 `Image2` 分别为待比较的两张图像的文件路径。我们首先使用 Delphi-OpenCV 中提供的 `LoadImage` 函数读取图像,并使用 `cvCvtColor` 函数将图像转换为灰度图像。然后,我们使用 `cvCalcHist` 函数计算两张图像的直方图,并使用 `cvCompareHist` 函数比较两个直方图的相似度。最后,我们返回相似度的值。需要注意的是,我们在比较直方图时使用了 `CV_COMP_CORREL` 参数,表示使用相关性作为相似度的度量方式。你可以根据具体需求调整参数值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值