• 技术文章 >后端开发 >Python教程

    python图像处理之镜像实现方法

    2016-06-06 11:17:33原创1474
    本文实例讲述了python图像处理之镜像实现方法。分享给大家供大家参考。具体分析如下:

    图像的镜像变化不改变图像的形状。图像的镜像变换分为三种:水平镜像、垂直镜像、对角镜像

    设图像的大小为M×N,则

    水平镜像可按公式

    I = i

    J = N - j + 1

    垂直镜像可按公式

    I = M - i + 1

    J = j

    对角镜像可按公式

    I = M - i + 1

    J = N - j + 1

    值得注意的是在OpenCV中坐标是从[0,0]开始的

    所以,式中的 +1 在编程时需要改为 -1

    这里运行环境为:

    Python为:Python2.7.6
    OpenCV2.4.10版(可到http://sourceforge.net/projects/opencvlibrary/files/opencv-win/下载)
    numpy为:numpy-1.9.1-win32-superpack-python2.7(可到http://sourceforge.net/projects/numpy/files/NumPy/1.9.1/下载)

    下面的代码仍以baby美图为例具体程序如下:

    import cv2.cv as cv
    image = cv.LoadImage('angelababy.jpg',1)
    size = (image.width,image.height)
    iUD = cv.CreateImage(size,image.depth,image.nChannels)
    iLR = cv.CreateImage(size,image.depth,image.nChannels)
    iAcross = cv.CreateImage(size,image.depth,image.nChannels)
    h = image.height
    w = image.width
    for i in range(h):
      for j in range(w):
        iUD[h-1-i,j] = image[i,j]
        iLR[i,w-1-j] = image[i,j]
        iAcross[h-1-i,w-1-j] = image[i,j]
    cv.ShowImage('image',image)
    cv.ShowImage('iUD',iUD)
    cv.ShowImage('iLR',iLR)
    cv.ShowImage('iAcross',iAcross)
    cv.WaitKey(0)

    运行结果如下图所示:

    希望本文所述对大家的Python程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 图像处理 镜像
    上一篇:Python使用reportlab将目录下所有的文本文件打印成pdf的方法 下一篇:python中字典(Dictionary)用法实例详解
    千万级数据并发解决方案

    相关文章推荐

    • Python模块化整理和第三方模块的安装(总结分享)• 详细了解Python进程池与进程锁• python列表详解(总结分享)• 一起聊聊Python的编码样式• 带你搞懂Python反序列化
    1/1

    PHP中文网