OpenCV实现图像翻转
2010-09-13 19:49

今天在实时处理图像采集卡采集的图像时,发现直接将图像采集卡采集的图像cvShowImage出来的是反着的图像,也就是图像采集卡采集的图像是以左下角为原点的,而窗口显示的图像原点是左上角,相当于是关于X轴翻转了。在显示图像之前使用cvFlip()函数将图像翻转一下就可以了。下面是关于这个函数的介绍以及简单的测试小程序。

Flip
垂直,水平或即垂直又水平翻转二维数组

void cvFlip( const CvArr* src, CvArr* dst=NULL, int flip_mode=0);
#define cvMirror cvFlip

src 
原数组. 
dst 
目标责任制数组. 如果 dst = NULL 翻转是在内部替换. 
flip_mode 
指定怎样去翻转数组。 
flip_mode = 0 沿X-轴翻转, flip_mode > 0 (如 1) 沿Y-轴翻转, flip_mode < 0 (如 -1) 沿X-轴和Y-轴翻转.见下面的公式 
函数cvFlip 以三种方式之一翻转数组 (行和列下标是以0为基点的):

dst(i,j)=src(rows(src)-i-1,j) if flip_mode = 0
dst(i,j)=src(i,cols(src1)-j-1) if flip_mode > 0
dst(i,j)=src(rows(src)-i-1,cols(src)-j-1) if flip_mode < 0
函数主要使用在:

垂直翻转图像(flip_mode > 0)用于 顶-左和底-左图像结构的转换, 主要用于WIN32系统下的视频操作处理. 
水平图像转换,使用连续的水平转换和绝对值差检查垂直轴对称(flip_mode > 0) 
水平和垂直同时转换,用于连续的水平转换和绝对真理值差检查中心对称s(flip_mode < 0) 
翻转1维指针数组的顺序(flip_mode > 0)

#include "stdafx.h"
#include "stdio.h"
#include "cv.h"
#include "highgui.h"

int main()   
{   
    IplImage *pSrcImg = NULL;   
    IplImage *pClnImg = NULL;

pSrcImg = cvLoadImage("flower.jpg", 1);   
    if (pSrcImg == NULL)   
    {   
        printf("Fail to load images\n");   
        return -1;   
    }

pClnImg = cvCloneImage(pSrcImg);     
    if (pClnImg == NULL)   
    {   
        printf("Fail to clone the image\n");   
        return -1;   
    }

cvFlip(pClnImg, NULL,0);    //核心在这里 
    cvNamedWindow("src", 0);   
    cvNamedWindow("turnover",0);   
    cvShowImage("src", pSrcImg);   
    cvShowImage("turnover", pClnImg);   
    cvWaitKey(0);   
    cvReleaseImage(&pSrcImg);   
    cvReleaseImage(&pClnImg);   
    cvDestroyWindow("src");   
    cvDestroyWindow("turnover");   
    return 0;   
}

OpenCV实现图像翻转相关推荐

  1. 计算机视觉开源库OpenCV之图像翻转

    计算机视觉开源库OpenCV之图像翻转,包括水平翻转.上下翻转.水平翻转后上下翻转等,函数为为cv2.flip(). 效果如下: 示例代码如下: #!/usr/bin/env python3 impo ...

  2. opencv之图像翻转、平移、缩放、旋转、仿射学习笔记

    opencv版本:opencv3.4.1 目录 1. 图像翻转(坐标映射) 2.  平移 3. 缩放 4. 旋转 1. 图像翻转(坐标映射) int main() {cv::Mat srcImage ...

  3. opencv 学习笔记9:图像缩放与图像翻转

    图像缩放 缩放包括缩小和放大 语法格式 cv2.resize()有很多参数,其中src和dsize必备 cv2.resize(src.dsize) src原始图像路径 dsize 目标图像大小 (列, ...

  4. java 图片旋转 翻转 镜像处理_Java OpenCV实现图像镜像翻转效果

    本文实例为大家分享了Java OpenCV实现图像镜像翻转效果的具体代码,供大家参考,具体内容如下 主要使用OpenCV的flip()方法,可以实现图像的垂直.水平以及同时垂直镜像翻转. flip是C ...

  5. Java垂直镜像,Java OpenCV实现图像镜像翻转效果

    本文实例为大家分享了Java OpenCV实现图像镜像翻转效果的具体代码,供大家参考,具体内容如下 主要使用OpenCV的flip()方法,可以实现图像的垂直.水平以及同时垂直镜像翻转. flip是C ...

  6. java图片镜像代码_Java OpenCV实现图像镜像翻转效果

    本文实例为大家分享了Java OpenCV实现图像镜像翻转效果的具体代码,供大家参考,具体内容如下 主要使用OpenCV的flip()方法,可以实现图像的垂直.水平以及同时垂直镜像翻转. flip是C ...

  7. python matplotlib 显示opencv的图像

    python matplotlib 显示opencv的图像 首先需要import import cv2 import numpy as np from matplotlib import pyplot ...

  8. python openCV 实现镜像翻转flip()

    python openCV 实现镜像翻转flip() 文章目录: 一.基本认知 二.代码实现 一.基本认知 图像的几何变换是指在不改变图像像素值的前提下对图像像素进行空间几何变换. 常见的几何变换有: ...

  9. python函数图像平移_[Python图像处理]六.图像缩放,图像旋转,图像翻转与图像平移...

    图像缩放 图像缩放主要是调用resize()函数实现,result = cv2.resize(src, dsize[, result[.fx, fy[,interpolation]]])  其中src ...

最新文章

  1. error LNK2019: 无法解析的外部符号,该符号在函数 _main 中被引用的解决方法
  2. Android-Spinner下拉列表Demo
  3. Codechef Chef Cuts Tree
  4. 用云服务器实现janus之web端与web通话!
  5. 如何理解卷积神经网络(CNN)中的卷积和池化?
  6. 小甲鱼 OllyDbg 教程系列 (八) :fjproducer 逆向 之 困境
  7. htc816t Android go,HTC D816t(Desire D816t 移动4G)一键刷机图文教程详解
  8. 【C语言】找到兼职了心情紧张!
  9. 微软重新设计 Edge for Android 的用户界面
  10. 腾讯智慧零售数字增长峰会:私域新生态,增长新格局
  11. windows server 2003 版本的识别 及 小技巧
  12. 32.卷1(套接字联网API)---IPv4,IPv6,ICMPv4 和 ICMPv6
  13. Openwrt 路由器挂载摄像头教程
  14. 自动化运维落实到位的三点基础及常用工具对比
  15. c语言中的空字符常量,C ++中的空字符常量
  16. 人工智能就是计算机科学的英语,人工智能的英语解释
  17. Unity实现人物旋转+移动
  18. vsr matlab仿真,电压型PWM整流器(VSR)及控制系统的matlab仿真..docx
  19. 从零开始SpringCloud Alibaba实战(47)——阿里开发手册泰山版学习笔记一 命名风格
  20. Python代码:根据txt文件批量提取图片

热门文章

  1. adb 不识别解决办法
  2. jsp在ie6中css的margin属性失效问题
  3. Android FrameWork——PackageManager框架
  4. android 布局长度单位深入研究
  5. go语言net包rpc远程调用的使用
  6. linux基础-权限管理,手工添加用户,umask,bash配置文件
  7. ogg启动报错libnnz11.so: cannot open shared object file
  8. swift基础之_swift调用OC/OC调用swift
  9. poj2586 Y2K Accounting Bug(贪心)
  10. 在微博中应用PageRank算法