当前位置: 首页 > news >正文

贵阳专业网站制作wordpress后台管理

贵阳专业网站制作,wordpress后台管理,网络舆情中心,最近韩国电影片文章目录 前言1.像素重映射理论基础2.代码实现(1) remap()细节(2)水平翻转(2)垂直翻转(3)旋转 180 度(4)径向扭曲 3.完整代码 前言 像素重映射将图像中的每个像素映射到新位置#xff0c;实现图像的扭曲、校正等操作。在 OpenCV 中#xff0c;cv::remap() 函数就是用于实现这… 文章目录 前言1.像素重映射理论基础2.代码实现(1) remap()细节(2)水平翻转(2)垂直翻转(3)旋转 180 度(4)径向扭曲 3.完整代码 前言 像素重映射将图像中的每个像素映射到新位置实现图像的扭曲、校正等操作。在 OpenCV 中cv::remap() 函数就是用于实现这种功能的。本文将详细介绍像素重映射的基本原理以及在 OpenCV 中的实现方法并给出完整代码。 1.像素重映射理论基础 像素重映射的原理是将图像的每个像素通过预定义的映射规则重新分配到新的位置。映射规则可以是任意的数学函数比如旋转、缩放、扭曲等甚至可以通过查表的方式进行非线性的映射。 像素重映射可以用以下公式表示 dst ( x ′ , y ′ ) src ( x , y ) \text{dst}(x, y) \text{src}(x, y) dst(x′,y′)src(x,y) 其中 (x, y) 是源图像中的像素位置(x, y) 是目标图像中的像素位置。通过映射函数可以将源图像的像素映射到目标图像的相应位置。 常见的重映射应用 图像扭曲将图像以某种方式进行扭曲处理使其变形。 镜头畸变校正通过重映射可以校正图像中由于镜头引起的畸变如鱼眼镜头畸变。 图像旋转与缩放可以将图像按照指定的角度和比例进行旋转与缩放。 2.代码实现 实验用到图像供学习使用sherlock.jpg (1) remap()细节 cv::remap( InputArray src,// 输入图像 OutputArray dst,// 输出图像 InputArray map1,// x 映射表 CV_32FC1/CV_32FC2 InputArray map2,// y 映射表 int interpolation,// 选择的插值方法常见线性插值可选择立方等 int borderMode,// 指定图像边界的处理方式默认为 BORDER_CONSTANT。 const Scalar borderValue// 用于边界像素的值默认是黑色。 )(2)水平翻转 将 map1 中的列坐标从右向左映射map2 保持原始的行坐标不变。 for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {map1.atfloat(i, j) static_castfloat(src.cols - j - 1); // 水平翻转map2.atfloat(i, j) static_castfloat(i);}}Mat dst_hflip;remap(src, dst_hflip, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Horizontal Flip, WINDOW_AUTOSIZE);imshow(Horizontal Flip, dst_hflip);结果: (2)垂直翻转 将 map2 中的行坐标从下向上映射而 map1 保持列坐标不变。 // 2. 垂直翻转for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {map1.atfloat(i, j) static_castfloat(j);map2.atfloat(i, j) static_castfloat(src.rows - i - 1); // 垂直翻转}}Mat dst_vflip;remap(src, dst_vflip, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Vertical Flip, WINDOW_AUTOSIZE);imshow(Vertical Flip, dst_vflip);结果 (3)旋转 180 度 同时进行水平和垂直翻转 // 3. 旋转 180 度for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {map1.atfloat(i, j) static_castfloat(src.cols - j - 1); // 水平翻转map2.atfloat(i, j) static_castfloat(src.rows - i - 1); // 垂直翻转}}Mat dst_rotate180;remap(src, dst_rotate180, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Rotate 180 degrees, WINDOW_AUTOSIZE);imshow(Rotate 180 degrees, dst_rotate180);结果 (4)径向扭曲 通过对极坐标中的半径进行二次变换产生径向扭曲效果图像向中心点扭曲产生类似鱼眼镜头的效果。 // 4. 径向扭曲效果float cx src.cols / 2.0;float cy src.rows / 2.0;float radius min(cx, cy);for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {float dx j - cx;float dy i - cy;float r sqrt(dx * dx dy * dy);float theta atan2(dy, dx);float r_distorted radius * (r / radius) * (r / radius); // 径向扭曲map1.atfloat(i, j) cx r_distorted * cos(theta);map2.atfloat(i, j) cy r_distorted * sin(theta);}}Mat dst_radial;remap(src, dst_radial, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Radial Distortion, WINDOW_AUTOSIZE);imshow(Radial Distortion, dst_radial);结果 3.完整代码 #includeopencv2/opencv.hpp #includehighgui.hpp #includeiostream #includemath.husing namespace cv; using namespace std;void remap_image() {cv::Mat src;src imread(sherlock.jpg);if (src.empty()) {printf(could not find the image...\n);return;}namedWindow(Source Image, WINDOW_AUTOSIZE);imshow(Source Image, src);//创建映射矩阵Mat map1(src.size(), CV_32FC1);Mat map2(src.size(), CV_32FC1);// 1. 水平翻转for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {map1.atfloat(i, j) static_castfloat(src.cols - j - 1); // 水平翻转map2.atfloat(i, j) static_castfloat(i);}}Mat dst_hflip;remap(src, dst_hflip, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Horizontal Flip, WINDOW_AUTOSIZE);imshow(Horizontal Flip, dst_hflip);// 2. 垂直翻转for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {map1.atfloat(i, j) static_castfloat(j);map2.atfloat(i, j) static_castfloat(src.rows - i - 1); // 垂直翻转}}Mat dst_vflip;remap(src, dst_vflip, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Vertical Flip, WINDOW_AUTOSIZE);imshow(Vertical Flip, dst_vflip);// 3. 旋转 180 度for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {map1.atfloat(i, j) static_castfloat(src.cols - j - 1); // 水平翻转map2.atfloat(i, j) static_castfloat(src.rows - i - 1); // 垂直翻转}}Mat dst_rotate180;remap(src, dst_rotate180, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Rotate 180 degrees, WINDOW_AUTOSIZE);imshow(Rotate 180 degrees, dst_rotate180);// 4. 径向扭曲效果float cx src.cols / 2.0;float cy src.rows / 2.0;float radius min(cx, cy);for (int i 0; i src.rows; i) {for (int j 0; j src.cols; j) {float dx j - cx;float dy i - cy;float r sqrt(dx * dx dy * dy);float theta atan2(dy, dx);float r_distorted radius * (r / radius) * (r / radius); // 径向扭曲map1.atfloat(i, j) cx r_distorted * cos(theta);map2.atfloat(i, j) cy r_distorted * sin(theta);}}Mat dst_radial;remap(src, dst_radial, map1, map2, INTER_LINEAR, BORDER_CONSTANT, Scalar(0, 0, 0));namedWindow(Radial Distortion, WINDOW_AUTOSIZE);imshow(Radial Distortion, dst_radial);waitKey(0); } int main() {remap_image();return 0; }
http://www.hkea.cn/news/14585271/

相关文章:

  • 网站内容建设和管理系统药企做网站需要哪些手续
  • 中国建设银行 云南 网站首页管理类网站开发价格
  • 稳定的网络建站咨询电话三亚网站制
  • 网站白名单 是什么如何制作自己的作品集
  • 青海保险网站建设公司免费ppt幻灯片下载
  • 在网站上上传文件需要怎么做品牌建设成绩
  • 莆田中小企业网站制作网页模板免费下载平台
  • 到国外建网站英语培训学校网站建设多少钱
  • 如何让做网站网站建设肆金手指排名7
  • 网站建设的标准网站建设 是否计入固定资产
  • 网站 建设初步动漫制作技术专业入门
  • 电子商务网站建设合同标准范文在线商城网站制作
  • 如何申请建设网站首页达州达县网站建设
  • 网站内容如何自动关联新浪微博松岗专业做网站公司
  • 网站建设 怎么跑业务网址大全软件下载安装
  • 南宁网站建设公司哪家专业WordPress字库压缩
  • 义乌商城网站开发苏州网站开发公司兴田德润怎么联系
  • 做合约交易哪个网站好哪里可以找到免费的网站
  • 提高网站的权重的最佳方法昌吉市建设局网站
  • 广东石油化工建设集团公司网站wordpress视频自动播放
  • 宁波网站建设公司优选亿企邦西安企业模板建站
  • 什么叫精品网站建设企业网站php源码免费下载
  • 南宁美丽南方官方网站建设意见win2003 wordpress
  • 网站建设如何创建框架页面股权众筹网站建设
  • 垂直类门户网站百度速页建站
  • 安康有建网站的公司吗seo网站优化培训多少价格
  • 合伙做网站怎么分配股权网站改版建设 有哪些内容
  • 江西省建设厅网站资质升级查询互联网公司排名前十名名单
  • 网站被搜索引擎收录建站视频网站
  • 建设银行官方网站手机版朝阳商城网站建设