手撕OpenCV源码之resize(INTER_AREA)

手撕OpenCV源码之resize

resize在modules/imgproc/src/文件件中,首先看resize API的函数实现:

void resize(InputArray src, OutputArray dst,
            Size dsize, double fx=0, double fy=0,
            int interpolation=INTER_LINEAR )

参数说明:

  • src:输入图像

  • dst:输出图像,dst的数据类型与src相同.

  • dsize:这个参数是输出图像的尺寸,两种情况,如果该参数设置为0,api会自动计算
    输出参数,否则按照输入尺寸.dst的计算公式:
    d s i z e = S i z e ( r o u n d ( f x × s r c . c o l s ) , r o u n d ( f y × s r c . r o w s ) ) dsize = Size(round(fx×src.cols),round(fy×src.rows)) dsize=Size(round(fx×src.cols),round(fy×src.rows))
    所以当dsize为0的时候,fx和fy不能为0.

  • fx:
    ( d o u b l e ) d s i z e . w i d t h /

你可能感兴趣的:(OpenCV源码杂记)