zoukankan      html  css  js  c++  java
  • opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像

    阅读对象:可以配置opencv+Python环境的任何人,毕竟写这篇文章的人就是小白。

    1.环境说明

    1.1opencv版本:

    1.2Python版本:

    1.3系统:win7

    注:

    (1)opencv安装教程:http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows

    (2)python我装的是Anaconda,我个人用着比较顺手;

    (3)opencv一定要装2,不要装3,否则改报错改的会让你怀疑人生。

    2.直接上代码

    # -*- coding: utf-8 -*-
    """
    Created on Tue Mar 14 19:39:11 2017
    
    @author: Thinkpad
    """
    '''
    2.opencv中的Gui特性
    2.1图片:读图像,显示图像,保存图像
    读图像
    cv2.imread(a,b)
    a:图像所在的路径
    b:如何读取图片
      cv2.IMREAD_COLOR:读入一副彩色图像,图像透明度会被忽略,这是默认参数;
      cv2.IMREAD_GRAYSCALE:以灰度模式读入图像
      cv2.IMREAD_UNCHANGED:读入一副图像,并且包括图像的alpha通道
    
      
    显示图像
    cv2.imshow(a,b)
    a:窗口名字,你可以随便随便命名,但记得要加上引号,详情见下面例子;
    b:读进来的图像;
    窗口会自动调整为读入图像的大小,可以显示多个窗口,但要给它们不同的名字,一旦给予相同的名字,只会显示最后一个图像。
    
    
    保存图像
    cv2.imwrite(a,b)
    a:文件保存的地址+文件名,要用引号括起来;
    b:要保存的文件;
    '''
    
    import numpy as np
    import cv2
    img=cv2.imread('C:/Users/Thinkpad/Desktop/4.jpg',0)#读进一张彩色图像(图1),转化为灰度模式,imshow的结果是灰度图,见图2,由于图太大,这里显示不完全。
    cv2.imshow('img',img)
    cv2.imwrite('C:/Users/Thinkpad/Desktop/7.jpg',img)#把灰度图保存在‘C:/Users/Thinkpad/Desktop/‘路径下,命名为7.
    img1=cv2.imread('C:/Users/Thinkpad/Desktop/2.jpg')#读进一张彩色图像,imshow的结果是彩色图,见图3.
    cv2.imshow('img1',img1)
    img2=cv2.imread('C:/Users/Thinkpad/Desktop/7.jpg')#读进一张灰度图像,imshow的结果就是灰度图,见图4.
    cv2.imshow('img',img2)
    '''
    cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限
    期的等待键盘输入。
    cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删除的窗口名。
    '''
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    '''
    上面图像太大,显示不完全,解决办法如下:
    一种特殊的情况是,可以先创建一个窗口,之后再加载图像。使用到的函数是cv2.namedWindow()。初始设定函数标签是cv2.WINDOW_AUTOSIZE。但是如果把标签改成cv2.WINDOW_NORMAL,你就可以调整窗口大小了。当图像维度太大,或者要添加轨迹条时,调整窗口大小将会很有用。
    '''
    cv2.namedWindow('image', cv2.WINDOW_NORMAL)
    cv2.imshow('image',img2)#结果见图5,大图像显示出来了。
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    图1 

    图2 

    图3 

    图4 

    图5 

    参考资料:http://opencv-python-tutroals.readthedocs.io/en/stable/py_tutorials/py_gui/py_image_display/py_image_display.html#display-image

     

    end!!

  • 相关阅读:
    32位系统最大只能支持4GB内存之由来
    无线传感器网络中的节点定位技术
    Python 面向对象编程(一)
    Eclipse+PyDev+Django+Mysql搭建Python web开发环境
    Python中的函数(二)
    关于raw_input()和sys.stdin.readline()的区别
    Python中的函数(三)
    将Sublime Text 2搭建成一个好用的IDE
    Windows Phone 7 Tips (1)
    Expression Blend 知识锦分享
  • 原文地址:https://www.cnblogs.com/llfisher/p/6551368.html
Copyright © 2011-2022 走看看