亚像素算法(商业源码)

亚像素算法是图像处理中常用的技术之一,用于提升图像的分辨率和精度。下面是一个亚像素算法的实现:

1.对原始图像进行双线性插值,得到一个2倍分辨率的图像

int BilinearInterpolation(const cv::Mat& src, cv::Mat& dst)
{
    dst.create(src.rows*2-1, src.cols*2-1, src.type());

    for (int i = 0; i < src.rows; i++)
    {
        for (int j = 0; j < src.cols; j++)
        {
            dst.at<cv::Vec3b>(i*2, j*2) = src.at<cv::Vec3b>(i, j);

            if (j < src.cols-1)
            {
                dst.at<cv::Vec3b>(i*2, j*2+1) = (src.at<cv::Vec3b>(i, j)*((j+1)*1.0 - j) + src.at<cv::Vec3b>(i, j+1)*(j+1 - (j*1.0))) / ((j+1) - j);
            }

            if (i < src.rows-1)
            {
                dst.at<cv::Vec3b>(i*2+1, j*2) = (src.at<cv::Vec3b>(i, j)*((i+1)*1.0 - i) + src.at<cv::Vec3b>(i+1, j)*(i+1 - (i*1.0))) / ((i+1) - i);
           

猜你喜欢

转载自blog.csdn.net/weixin_56819992/article/details/130679707