1. 程式人生 > >opencv基礎教程 之 影象基礎和繪圖

opencv基礎教程 之 影象基礎和繪圖

1,教程:感謝小強

2,用argparse傳引數來顯示一張圖片

#!/usr/bin/python    #linux系統
#coding=utf-8

import cv2
import argparse    #python很常用的一個自帶包

ap=argparse.ArgumentParser()    #先例項化一個argparse
ap.add_argument("--image","-i",required=True,help="path to the image")    #呼叫argparse下的一個方法,這樣我們就可以告訴程式,我們後面輸入的引數是個什麼引數,引數是:標籤全稱,簡稱,引數是不是必須的(required),action=“function”(可選引數),help:顯示幫助資訊
args=vars(ap.parse_args()) #引數名和內容的鍵值對字典,這個直接記住吧,估計是讓引數名和引數的實際值形成了一個字典,字典名字叫args image=cv2.imread(args["image"]) print "height",image.shape[0],"px" print "width",image.shape[1],"px" print "channels",image.shape[2] cv2.imshow("image",image) #影象顯示出來

image[0:5,0:5,]=(0,0,255) #把影象y軸上0-5,x軸上0-5的畫素變成紅色,打印出來
cv2.imshow("color",image)

  (h,w)=image.shape[:2]
  (cx,cy)=(w/2,h/2) #影象中心點

  t1=image[0:cy,0:cx]   #擷取左上角的pic
  cv2.imshow("part1",t1)

cv2.waitKey(0)
cv2.destroyAllWindows()

 3,opencv繪圖

#!/usr/bin/python
#!coding=utf-8

import numpy as np
import cv2

# 初始化一塊400*600的畫布(相當於生成一個numpy陣列,也就是一幅影象),注意這裡的
畫布是三通道的,也就是彩色影象 canvas = np.zeros((400, 600, 3), dtype="uint8") #注意400是高度y軸,600是寬度 # 畫一條綠線 green = (0, 255, 0) # 起點(0, 0)至終點(600, 400),顏色綠色。PS.這裡有一個預設引數,線寬預設為1個畫素 cv2.line(canvas, (0, 0), (600, 400), green,4) #畫布,開始座標,終點座標,線的顏色和線的粗細 cv2.imshow("Canvas", canvas) #顯示出來瞅瞅 cv2.waitKey(0)

cv2.rectangle(canvas,(0,0),(15,150),green,1) #畫矩形的函式:rectangle,需要的是指定原點(矩形的左上角)和矩形的水平寬度和高度,往後是線條顏色 和寬度,注意寬度是-1的時候表示填充
cv2.imshow("Canvas", canvas) #顯示出來瞅瞅
cv2.waitKey(0)

 cv2.circle(canvas,(100,150),50,(255,255,255))    #畫一個圓形,圓心座標(x,y),半徑50,顏色(255,255,255,)白色

 cv2.imshow("Canvas", canvas)
 cv2.waitKey(0)