#!/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) #圖像中心點python
t1=image[0:cy,0:cx] #截取左上角的pic
cv2.imshow("part1",t1)linux
cv2.waitKey(0)
cv2.destroyAllWindows()
#!/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,)白色canvas
cv2.imshow("Canvas", canvas)
cv2.waitKey(0)數組
1 #!/usr/bin/python 2 #coding=utf-8 3 4 import sys 5 import cv2 6 7 import numpy as np 8 9 input_file=sys.argv[1] 10 img=cv2.imread(input_file) 11 cv2.imshow('original',img) 12 13 #裁剪圖像,對shape函數不甚理解 14 h,w=img.shape[:2] 15 start_row,end_row=int(0.21*h),int(0.73*h) 16 start_col,end_col=int(0.37*w),int(0.92*w) 17 img_cro=img[start_row:end_row,start_col:end_col] 18 cv2.imshow('img_cro',img_cro) 19 20 #把圖像的長寬都乘以1.3,對熱死則函數和參數不甚理解 21 scaling_factor=1.3 22 img_scaled=cv2.resize(img,None,fx=scaling_factor,fy=scaling_factor,interpolation=cv2.INTER_LINEAR) 23 cv2.imshow('scaled',img_scaled) 24 25 #把圖像變扁 26 img_scaled=cv2.resize(img,(250,400),interpolation=cv2.INTER_AREA) 27 cv2.imshow("skewe",img_scaled) 28 cv2.waitKey() 29 30 #圖像保存到輸出文件 31 output_file=input_file[:4]+'__cropped.jpg' 32 cv2.imwrite(output_file,img_cropped) 33 34 cv2.waitKey()
目前不甚理解函數
#!user/bin/python #!coding=utf-8 import sys import cv2 import numpy as np input_file=sys.argv[1] img=cv2.imread(input_file) img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imshow("gray",img_gray) #顯示原圖的灰度圖 #均衡灰度直方圖 img_gray_histeq=cv2.equalizeHist(img_gray) cv2.imshow('equlized',img_gray_histeq) #不只是灰色的,並且像是銳化過了,像素差異被加強了 #目前直方圖均衡化只適合亮度通道,因此彩色的圖在均衡化以前須要轉換到YUV色彩空間 img_yuv=cv2.cvtColor(img,cv2.COLOR_BGR2YUV) #均衡y通道,感受轉換的是red通道 img_yuv[:,:,0]=cv2.equalizeHist(img_yuv[:,:,0]) #轉換回bgr img_histeq=cv2.cvtColor(img_yuv,cv2.COLOR_YUV2BGR) cv2.imshow('input',img) #這個是原圖 cv2.imshow('histeq',img_histeq) #這個圖感受顏色被加深了,就是img_gray_histeq圖帶了顏色 cv2.waitKey()