双线性插值

保存双线性插值代码

void interpolationProcess(const Mat &src, Mat &dst,float delta_x,float delta_y){
	dst = Mat(src.size(), src.type(), Scalar(0));
	for (int i = 1; i < src.rows - 1; i++)
	{
		for (int j = 1; j < src.cols - 1; j++)
		{
			float aij = src.at<uchar>(i + 1, j + 1) - src.at<uchar>(i, j + 1) - 
				src.at<uchar>(i + 1, j) + src.at<uchar>(i, j);
			float bij = src.at<uchar>(i + 1, j) - src.at<uchar>(i, j);
			float cij = src.at<uchar>(i, j + 1) - src.at<uchar>(i, j);
			float dij = src.at<uchar>(i, j);
			float pixel_temp = aij*delta_x*delta_y + bij*delta_x + cij*delta_y + dij;
			dst.at<uchar>(i, j) = pixel_temp;
		}
	}
}


你可能感兴趣的:(双线性插值代码)