绪:
重映射就是把一幅图像中某个位置的像素放置到另一个图像中指定位置的过程;
仿射变换是一个标的目的量空间进行一次线性变换并接上一个平移 , 变换为另一贯量空间的过程;
本文本家儿要分重映射和放射变换的功能;
以及若何利用的 。
文章插图
需要这些哦
OpenCV 2410
方式/
1重映射remap:
重映射就是把一幅图像中某个位置的像素放置到另一个图像中指定位置的过程;
公式:
g(x,y)=f(h(x,y))
此中f就是映射体例;
在OpenCV中 , 利用remap函数实现重映射 。
格局:
void remap(InputArray src, //输入图像
OutputArraydst, //输出图像
InputArray map1,//第一个映射
InputArray map2, //第二个映射
int interpolation, //插值
intborderMode=BORDER_CONSTANT,
const Scalar& borderValue=https://vvvtt.com/article/Scalar()
)
文章插图
2重映射法式如下:
//根基重映射尝试
#include <opencv2\opencv.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\features2d\features2d.hpp>
#include <opencv2\core\core.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat srcImage = imread("0.jpg");
imshow("Src Pic", srcImage);
Mat dstImage, map_x, map_y;
dstImage.create(srcImage.size(), srcImage.type());
map_x.create(srcImage.size(), CV_32FC1);
map_y.create(srcImage.size(), CV_32FC1);
//遍历每一个像素点 , 改变map_x & map_y的值,实现翻转180度
for (int j = 0; j < srcImage.rows; j++)
{
for (int i = 0; i < srcImage.cols; i++)
{
map_x.at<float>(j, i) = static_cast<float>(i);//行不变
map_y.at<float>(j, i) = static_cast<float>(srcImage.rows - j);//列翻转
}
}
//进行重映射操作
remap(srcImage, dstImage, map_x, map_y, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));
imshow("重映射结果图", dstImage);
waitKey();
推荐阅读
- 狗不理回应北京最后门店停业:是否重开还在考虑之中 只是结构调整
- 重启之极海听雷演员表 重启之极海听雷的演员表
- 小米手环2如何重置
- 王者荣耀顶号怎么重连
- 龙井鸡片汤
- Excel表格中如何去除重复的项
- 掀起两场重要战争的茶叶
- 重大卫生事件一级响应什么意思 重大卫生事件一级响应是什么意思
- 新手炒股需要了解股票基础知识,基础是重中之重
- 如何重新找回和加入已经退出的QQ群?