opencv学习笔记十六:像素重映射

像素重映射主要有水平方向映射和竖直方向映射,水平方向map_ j = cols - j,左右两边像素对调,相当于水平镜像。竖直方向map_i = rows - i,上下两边像素对调,相当于竖直镜像。

重映射API函数:remap(src, dst, map_x, map_y, INTER_LINEAR, 0, Scalar(0, 255, 255));

参数解释:原图像,目标图像,x方向映射表,y方向映射表,插值方法,边界填充方法,颜色。

#include
using namespace cv;

void update_map(void);
Mat src, dst, map_x, map_y;
int index;
int main(int arc, char** argv)
{

	src = imread("1.png");
	namedWindow("input", CV_WINDOW_AUTOSIZE);
	imshow("input", src);

	map_x.create(src.size(), CV_32FC1);
	map_y.create(src.size(), CV_32FC1);
	while (true) {		
		int c = waitKey(500);
		if ((char)c == 27) { break; }
		index = c % 3;
		update_map();
		remap(src, dst, map_x, map_y, INTER_LINEAR, 0, Scalar(0, 255, 255));
		imshow("output", dst);
	}	
	waitKey(0);
	return 0;
}

void update_map(void) {
	for(int i=0;i(i, 

你可能感兴趣的:(opencv)