像素重映射(cv::remap)

  简单点说就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。

Remap(
InputArray src, // 输入图像
OutputArray dst, // 输出图像
InputArray map1, // x 映射表 CV_32FC1/CV_32FC2
InputArray map2, // y 映射表
int interpolation, // 选择的插值方法,常见线性插值,可选择立方等
int borderMode, // BORDER_CONSTANT
const Scalar borderValue // color
)
Mat src, dst, map_x, map_y;
const char* OUTPUT_TITLE = "remap demo";
int index = ;
void update_map(void);
int main(int argc, char** argv) {
src = imread(STRPAHT3);
if (!src.data) {
printf("could not load image...\n");
return -;
}
namedWindow(OUTPUT_TITLE, CV_WINDOW_AUTOSIZE); map_x.create(src.size(), CV_32FC1);
map_y.create(src.size(), CV_32FC1); int c = ;
while (true) {
c = waitKey();
if ((char)c == ) {
break;
}
index = c % ;
update_map();
remap(src, dst, map_x, map_y, INTER_LINEAR, BORDER_CONSTANT, Scalar(, , ));
imshow(OUTPUT_TITLE, dst);
}
return ;
} void update_map(void) {
for (int row = ; row < src.rows; row++) {
for (int col = ; col < src.cols; col++) {
switch (index) {
case :
if (col > (src.cols * 0.25) && col <= (src.cols*0.75) && row > (src.rows*0.25) && row <= (src.rows*0.75))
{
map_x.at<float>(row, col) = * (col - (src.cols*0.25));
map_y.at<float>(row, col) = * (row - (src.rows*0.25));
}
else
{
map_x.at<float>(row, col) = ;
map_y.at<float>(row, col) = ;
}
break;
case :
map_x.at<float>(row, col) = (src.cols - col - );
map_y.at<float>(row, col) = row;
break;
case :
map_x.at<float>(row, col) = col;
map_y.at<float>(row, col) = (src.rows - row - );
break;
case :
map_x.at<float>(row, col) = (src.cols - col - );
map_y.at<float>(row, col) = (src.rows - row - );
break;
} }
}
}

opencv::像素重映射的更多相关文章

  1. opencv —— remap 重映射

    重映射的概念 重映射,就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程. 实现重映射:remap 函数 将图像进行重映射几何变换,基于的公式为:dst (x, y) = src ( mapx ...

  2. opencv之重映射

    好久没写呆码了 今天发个重映射 #include "opencv2/video/tracking.hpp" #include "opencv2/imgproc/imgpr ...

  3. OpenCV函数 重映射

    重映射是什么意思? 把一个图像中一个位置的像素放置到另一个图片指定位置的过程. 为了完成映射过程, 有必要获得一些插值为非整数像素坐标,因为源图像与目标图像的像素坐标不是一一对应的. 我们通过重映射来 ...

  4. 【OpenCV新手教程之十七】OpenCV重映射 &amp; SURF特征点检測合辑

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨)  ...

  5. OpenCV探索之路(八):重映射与仿射变换

    重映射 重映射就是把一幅图像中某个位置的像素放置到另一个图片中指定位置的过程. 用一个数学公式来表示就是: 其中的 f 就是映射方式,也就说,像素点在另一个图像中的位置是由 f 来计算的. 在Open ...

  6. OpenCV学习笔记(九) 重映射、仿射变换

    重映射 通过重映射来表达每个像素的位置  : 这里  是目标图像,  是源图像,  是作用于  的映射方法函数.想象一下我们有一个图像  , 我们想满足下面的条件作重映射:,图像会按照  轴方向发生翻 ...

  7. OpenCV——重映射、仿射变换

    #include <opencv2/opencv.hpp> #include <iostream> #include <math.h> using namespac ...

  8. opencv 5 图像转换(3 重映射 仿射变换 直方图均衡化)

    重映射 实现重映射(remap函数) 基础示例程序:基本重映射 //---------------------------------[头文件.命名空间包含部分]------------------- ...

  9. C++ Opencv remap()重映射函数详解及使用示例

    一.重映射及remap()函数介绍 重映射,就是把一幅图像中某位置的像素放置到另一图像指定位置的过程.即: 在重映射过程中,图像的大小也可以同时发生改变.此时像素与像素之间的关系就不是一一对应关系,因 ...

随机推荐

  1. 最大公共子序列(Runtime faster than 92.73% of Python3)

    其中的算法思想只是较为简单的动态规划,过去各种各样的考试写过很多次C/C++版本的,最近开始用Python做leetcode中的题目时遇到了该题目,很常规的做法竟然得到了意想不到的速度,但内存占用较差 ...

  2. CSS3动画animation认识,animate.css的使用

    CSS动画 可以取代js动画 在移动端会更加流畅! 下面是一个的绘制太阳系各大行星运行轨迹笔记,可以自学参考! -------------------------------------------- ...

  3. 49 (OC)* layoutSubviews和drawRect调用

    layoutSubviews:  简单的说就是你如果想调用此方法.不要直接调用,需要调用setNeedsLayout方法来刷新布局! drawRect:刷新布局 一:layoutSubviews在以下 ...

  4. mysql集群基于docker 在centos上

    新博客https://blog.koreyoshi.work/ mysql集群(PXC)基于docker 在centos上 常用设计方案 Replication(复制) 速度快 弱一致性 低价值 场景 ...

  5. 网站开发过程中的URL写法

    在开发网页和服务器时发现,在很多地方需要写超链接 那么可以将超链接的使用者分为服务器和浏览器,以区分不同的写法 地址可能使用的情况: 1.跳转 2.转发 3.服务器资源地址 4.浏览器超链接 impo ...

  6. Intellij IDEA 2019 + Java Spring MVC + Hibernate学习笔记(2)

    书接上文 首先根据各种Spring MVC教程,建立了基础的结构,是否合理不知道,姑且先这样,有问题再解决问题.学习新东西,不能怕掉坑里... 查询网上别人的经历说需要把根目录下的lib目录下的所有包 ...

  7. 深度汉化GCompris-qt,免费的幼儿识字软件

    1 需求 因为有个小孩上幼儿园了,想开始教他一些汉语拼音和基本的汉字,但通过一书本和卡片又有些枯燥乏味,于上就上网搜索一些辅助认字的应用,还购买了悟空识字APP,在用的过程中发现他设置了很严格的关卡, ...

  8. [ProblemSolving][Ubuntu][LyX] The selected document class ... requires external files that are not available...

    I installed LyX in my Ubuntu(version LTS 18.04), but I just can't make it work. Every time I open an ...

  9. Shell之Xargs命令

    目录 Shell之Xargs命令 参考 xargs命令简介 xargs命令格式 xargs实例说明 Shell之Xargs命令

  10. 实际体验华为云AI : ModelArts

    国庆前看到了博客园官方博客发布的一篇博客: 学AI有奖:博客园&华为云AI有奖训练营开战啦 本着对AI这种火热的话题,以及华为云博客园联名公仔(次要),我决定参与这个活动. 现在华为云开始全面 ...