基于OpenCV实现------图像的转置
【1】理论基础
图像转置是将图像的x坐标和y坐标互换,图像的大小会随之改变----------即高度和宽度将互换。
【2】图像转置的变换公式
因为转置矩阵的逆矩阵仍然是其本身,故转置变换的逆变换具有相同的方式。
【3】实现图像转置的完整代码
21:13:31
李先生 2017/3/2 21:13:31
/*-------------------------------------------------------------------------------------------------------
*程序说明:
* 基于OpenCV实现------图像的转置(水平)
*开发环境:
* win7+vs2010+opencv2.4.8
*创建时间地点:
* 陕西师范大学。2017.3.2
*参考资料:
* 《数字图像处理与计算机视觉》张铮,徐超-----100页算法
*作者:
* 李先生
--------------------------------------------------------------------------------------------------------*/
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc_c.h>
#include<iostream>
using namespace cv;
using namespace std;/*-----------------------------------【定义图像转置的函数】---------------------------------
*函数原型:
* void HorMirror(IplImage* srcImage, IplImage* Image);
*函数功能:
* 图像平移
*参数:
* IplImage* srcImage:要进行处理的灰度图像
* IplImage* Image :将处理后的图像写入Image图像
*返回值:无返回值类型
---------------------------------------------------------------------------------------------------------*/
void HorMirror(IplImage* srcImage,IplImage* Image)
{int nHeight = srcImage->height;int nWidth = srcImage->width;for(int h=0;h<nHeight;h++){for(int w=0;w<nWidth;w++){uchar gray= (uchar)*((uchar*)(srcImage->imageData+h*srcImage->widthStep)+srcImage->nChannels*w); //读取原图(w,h)坐标的像素*((uchar*)(Image->imageData+w*Image->widthStep)+Image->nChannels*h) = gray; //写入目标目标图片(h,w)坐标 }}
}int main()
{//【1】载入原图IplImage* srcImage = cvLoadImage("G:\\Image\\lenaRGB.png",0);cvNamedWindow("原图");cvShowImage("原图",srcImage);cout<<"原图像的高"<<srcImage->height<<endl;cout<<"原图像的宽"<<srcImage->width<<endl;//【2】为目标图片做准备CvSize srcSize;srcSize.height=srcImage->width;srcSize.width=srcImage->height;IplImage * Image=cvCreateImage(srcSize,srcImage->depth,1);//【3】调用镜像变换函数函数并显示结果HorMirror(srcImage,Image); cvNamedWindow("镜像变换结果");cvShowImage("镜像变换结果",Image);cout<<"目标图像的高"<<Image->height<<endl;cout<<"目标图像的宽"<<Image->width<<endl;//【3】释放内存空间waitKey(0);cvDestroyWindow("原图");cvDestroyWindow("镜像变换结果");cvReleaseImage(&srcImage);cvReleaseImage(&Image);return 0;
}
基于OpenCV实现------图像的转置相关推荐
- 基于OpenCV平滑图像
基于OpenCV平滑图像也就是图像模糊,本博文介绍使用OpenCV的不同函数通过线性滤波进行图像平滑. cv::blur cv::GaussianBlur (高斯模糊) cv::medianBlur ...
- 数字识别java开源_Java基于opencv实现图像数字识别(三)—灰度化和二值化
Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...
- Java基于opencv实现图像数字识别(一),java开发面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- 4.3【图像镜像】-------------基于Opencv实现-----图像的镜像变换
[1]理论知识: 镜像变换又分为水平镜像和垂直镜像,水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行兑换,而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中 ...
- 基于OpenCV实现图像平移
[1]理论知识 图像平移就是将图像中所有的点按照指定的平移量水平或者垂直移动 [2]完整代码 /*--------------------------------------------------- ...
- 基于OpenCV实现图像线性变化
基础知识: 线性灰度变换函数f(x)是一个一维线性函数 y=f(x)=ax+b 式中:a为线性函数的斜率,b为线性函数在y轴的截距,x表示输入图像的灰度值,y表示输出图像的灰度值. (1) 当a> ...
- java图片降噪_Java基于opencv实现图像数字识别(四)—图像降噪
Java基于opencv实现图像数字识别(四)-图像降噪 我们每一步的工作都是基于前一步的,我们先把我们前面的几个函数封装成一个工具类,以后我们所有的函数都基于这个工具类 这个工具类呢,就一个成员变量 ...
- 基于opencv的图像阴影消除车辆变道检测
基于opencv的图像阴影消除 详细代码在这!!! 最大滤波 def max_filtering(N, I_temp):wall = np.full((I_temp.shape[0]+(N//2)*2 ...
- 基于Opencv的图像卡通化
基于Opencv的图像卡通化 基于Opencv的图像卡通化 铅笔素描效果 国画效果 抽象效果 基于Opencv的图像卡通化 主要工具是高斯滤波器.细节增强滤波器.双边滤波.拉普拉斯滤波器. 铅笔素描效 ...
最新文章
- linux平台的实验描述,基于LINUX的操作系统实验平台的设计与实现
- mysql delete 优化_mysql delete之后的优化
- C# 发邮件 服务器响应为: 5.7.0 Must issue a STARTTLS command first
- 如约而至 Nexus 6 的 Android 7.1.1 已经上线
- 315曝光:老坛酸菜工人穿拖鞋、光脚踩 防腐剂超标10倍!多家电商平台下架老坛酸菜...
- 启动Virtual User Generator提示ArgumentNullException:值不能为null
- html经历了几个版本,HTML 的上一个版本诞生于 1999 年. 自从那以后, Web 世界已经经历了巨变....
- android return 如何跳出两个循环_PHP跳出循环的方法
- form表单提交和重置小结
- 移动边缘计算与计算卸载概述
- 网站建设合同- 范文格式
- 在PS中如何旋转箭头
- php调用sqlmapapi.py,SQL注入 SqlmapApi快速上手
- 御坂坂的C++学习之路(1)
- HTML5简明教程系列之HTML5 表格与表单(二)
- python3黑帽编程_Python3.7 黑帽编程
- ZooKeeper 之Apache Curator 客户端使用
- 解决M1芯片Mac 黑屏PhotoShop 2019
- 基于强边缘有效性统计的图像清晰度评价
- strchr函数的实现
热门文章
- 服务器关闭重启后客户端socket能自动连接吗_用Python 撸一个 Web 服务器
- AIX安装中文语言包
- 删除docker私服镜像脚本
- retrofit框架学习(一)----基本用法
- 基于JAVA+SpringMVC+Mybatis+MYSQL的微信小程序图书借阅管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的停车场管理系统
- centos 升级内核方法
- MySQL 执行原生sql
- [BZOJ] 1614: [Usaco2007 Jan]Telephone Lines架设电话线
- poj 3252 Round Numbers(数学)