얼굴 필터-기하학적 변환 간단한 코드

1267 단어 얼굴 생김새
얼굴 기하학적 필터는 주로 간단한 기하학적 변환 공식에 따라 이미지에 대한 비뚤어짐을 실현하고 하하거울과 유사한 오락 목적을 달성하는데 구체적인 코드는 다음과 같이 간단하다.
int test_func() 
{
	cv::Mat src_img = cv::imread("test.jpg");
	float coe = 150.0;
	cv::Mat res_img;
	cv::Point cen_pnt(239, 364);
	sphere_trans(src_img, cen_pnt, coe, res_img);

	return 0;
}

int sphere_trans(cv::Mat&src_img, cv::Point&cen_pnt, float coe, cv::Mat&res_img) 
{
	if (src_img.empty() || cen_pnt.x<0 || cen_pnt.y<0 
		|| cen_pnt.x>src_img.cols || cen_pnt.y>src_img.rows)
		return -1;


	res_img = cv::Mat(src_img.size(), CV_8UC3, cv::Scalar(0, 0, 0));


	for (int i=0;i= res_img.cols)
				res_x = res_img.cols - 1;

			if (res_y < 0)
				res_y = 0;

			if (res_y >= res_img.rows)
				res_y = res_img.rows - 1;


			res_img.at<:vec3b>(j,i) = src_img.at<:vec3b>(res_y, res_x);

		}
	}


	cv::imshow("result", res_img);
	cv::waitKey(0);

	return 0;
}

좋은 웹페이지 즐겨찾기