1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存
code
將下面文檔存為load_display_save.py
#-*- coding:utf-8 -*-
from __future__ import print_function #1
import argparse #2
import cv2 #3ap = argparse.ArgumentParser() #4
ap.add_argument("-i", "--image", required = True,help = "Path to the image") #5
args = vars(ap.parse_args()) #6image1 = cv2.imread(args["image"]) #7
print("width: {}pixels".format(image1.shape[1])) #8
print("hight: {}pixels".format(image1.shape[0])) #9
print("channels: {}".format(image1.shape[2])) #10cv2.imshow("恐龍啊", image1) #11
cv2.waitKey(0) #12
cv2.imwrite("恐龍圖片.jpg", image1) #13
詳細解釋
#1:
引入future包,以便于我們使用print(),而不是print,這會讓我們的程序在python2.7或者python3下都可以運行
#2:
引入argparse包,是為了在命令行中解析所輸入的命令
#3:
引入OpenCV庫
#4,5,6:
這三句程序主要是為了解析從命令行輸入的參數,簡單介紹一下argparse的用法,一般分為四步:
import argparse #導包
parser = argparse.ArgumentParser() #創建ArgumentParser對象
parser.add_argument() #通過add_argument()告訴ArgumentParser如何將命令行中的參數轉化成所需要的對象
parser.parse_args() #存儲和使用通過add_argument()得到的信息,檢查命令行的參數,并將參數轉化成合理的使用類型
現在再回到原來的代碼中,在原代碼中:
ap.add_argument("-i", "--image", required = True,help = "Path to the image")
1.這第一個參數和第二個參數是什么意思呢?大家回想在命令行中輸入
python -h和輸入python –help是不是都可以得到關于python的幫助文檔呢,這里的第一個參數-i就可以看成是–image的簡寫形式。第二個參數是”–image”,這里的image同時也相當于聲明了一個變量,后面是會用到的,在#7就用到了。
2.第三個參數什么意思呢?意思你在命令輸入python load_display_save.py后面必須加上“-i”或者”–image”
3.第四個參數是幫助參數,就是解釋你這個python load_display_save.py -i后面跟的參數是什么,可以看懂在這后面應該跟圖片的路徑
args = vars(ap.parse_args()) #6
這里為什么要是用vars()呢?是為了能夠像字典一樣訪問 ap.parse_args()的值,即現在 args[“image”]=ap.parse_args()
關于argparse的更多內容可以訪問python官網:
官方解釋
官方使用教程
#7:
通過#6得到了圖片的路徑,現在通過OpenCV的imread()函數從路徑讀取圖片,cv2.imread()返回的是用numpy數組表示的圖片
#8,9,10:
輸出的分別是圖片的寬,高,和顏色通道的數量,其實image1.shape是一個三元組(高,寬,顏色通道),如果是黑白圖片的話則只是二元組(高,寬),要注意的是shape[0]是高,shape[1]是寬,及shape[0]是y,shape[1]是x,在圖像中的坐標系如下:
#11:
以名稱為”恐龍啊”將圖片顯示
#12:
cv2.waitKey()表示暫停腳本的執行直到在鍵盤輸入一個按鍵,用“0”作為可以使用任何按鍵作為繼續腳本執行的按鈕
#13:
通過腳本將剛才展示的圖片以名稱為”恐龍圖片.jpg”存儲在和腳本同樣的目錄之下,
執行
在終端輸入:
python load_display_save.py -i images/pic.png
得到結果
width: 528pixels
hight: 449pixels
channels: 3
得到圖片的寬為528像素,高位449像素,顏色通道的數量為3,即為RGB,同時可以驚奇的發現,我們打開了png的圖片然后輕易的將它存成jpg的格式,接下來我們將探索如何得到在圖片中的像素和控制它們。
轉載請注明出處:
CSDN:樓上小宇__home:http://http://blog.csdn.net/sty945
簡書:樓上小宇:http://www.jianshu.com/u/1621b29625df
總結
以上是生活随笔為你收集整理的1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现简单的用户密码登录控制(
- 下一篇: 2 用python进行OpenCV实战之