Python_opencv第一篇、图像加载与缩放

一、开发环境

    Python版本:Python3.6

     opencv版本:opencv3.4.0

版本查询方式

#python
import sys
print(sys.version)

#opencv
import cv2
print(cv2.__version__)
二、实验前提

     安装和配置基本环境,自行百度解决方法

       学习Python基本知识,可在慕课网相关课程学习

三、实验

import cv2

def main(pic = '1.jpg'):
    img = cv2.imread(pic,0)
    cv2.imshow('image',img)
    size = img.shape   #获取图片大小(长,宽,通道数)
    tempimg = cv2.resize(img,(size[1]*2,size[0]*2),cv2.INTER_LINEAR)
    cv2.imshow('imag2',tempimg)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

if __name__ == '__main__':
    main()

整体代码如上,接下来我们将一步一步解析

1、导入opencv模块,注意2.*版本的和3.*版本是不一样的

import cv2
2、加载图像
cv2.imread(img_name,command)
       img_name为字符串,要读取的图片的名字或者全路径;

       command可以为空,默认值为1;0  表示以灰度图方式读取图片;1  表示以彩色度方式读取图片

3、创建显示框并显示图片

cv2.imshow(name,img)#创建并显示
      name为字符串,显示框的名字,如下图红色部分;

      img为读取的图片信息,是一个numpy数组


namedWindow(name,command)#只创建可调节显示框,需与imshow配合使用
        name为字符串,显示框的名字;

        command为显示框属性设置,可调整大小cv2.WINDOW_NORMAL或者不可cv2.WINDOW_AUTOSIZE
4、等待用户关闭显示框

cv2.waitKey(0)
cv2.destroyAllWindows()
     只有用户点击关闭按钮,显示框才会关闭。不加这两句,显示框会一闪而过。

5、图片的保存

cv2.imwrite(img_name,img,command)
       img_name为字符串,图片的保存名字;

       img读取的图片信息;

       command可省略

6、图片的放大与缩小

img = cv2.imread(pic,0)
size = img.shape#获取图片大小(长,宽,通道数)
     size为一个有三个元素的tuple,元素一为图片的行像素点,元素二为图片的列像素点,参数三为通道数(灰度图的通道数为0,彩色图的通道数为3即RGB)
tempimg = cv2.resize(img,(high,whith),command)
       img为图片信息;

      (high,whith)以(high,whith)去显示图片;

       command一般设置为cv2.INTER_LINEAR


 

扩展例程

import cv2
import tkinter as tk

img = None
def main(pic = '1.jpg'):
    global img
    
    img = cv2.imread(pic,0)
    cv2.imshow('image',img)
    #gui功能
    app = tk.Tk()
    app.title('功能')
    button = tk.Button(app,text='放大',fg='blue',command = button_fun)
    button.pack()
    app.mainloop()
    
    cv2.waitKey(0)
    cv2.destroyAllWindows()

def button_fun():
    global img
    
    size = img.shape#获取图片大小(长,宽,通道数)
    tempimg = cv2.resize(img,(size[1]*2,size[0]*2),cv2.INTER_LINEAR)
    cv2.imshow('imag2',tempimg)


if __name__ == '__main__':
    main()


通过按钮将图片放大












       


猜你喜欢

转载自blog.csdn.net/Smile_Smilling/article/details/79183022