使用Docker執行MySQL8.0.28映象
阿新 • • 發佈:2022-03-30
sudo apt-get install python-opencv sudo apt-get install ros-melodic-vision-opencv libopencv-dev python-opencv
#!/usr/bin/env python # coding=utf-8 #1.編譯器宣告和2.編碼格式宣告 #1:為了防止使用者沒有將python安裝在預設的/usr/bin目錄,系統會先從env(系統環境變數)裡查詢python的安裝路徑,再呼叫對應路徑下的解析器完成操作,也可以指定python3 #2:Python.X 原始碼檔案預設使用utf-8編碼,可以正常解析中文,一般而言,都會宣告為utf-8編碼View Codeimport cv2 #引用OpenCV功能包 import numpy as np #引用陣列功能包 #讀取圖片 img_origin = cv2.imread('1.ImageProcess.jpg') img_height, img_width, img_channels = img_origin.shape #獲取圖片尺寸高度、寬度、通道數 cv2.imshow("windows_origin", img_origin) #視窗顯示圖片 #縮小圖片尺寸,再次獲取圖片尺寸 img = cv2.resize(img_origin, (int(img_width/2),int(img_height/2)), interpolation=cv2.INTER_AREA) img_height, img_width, img_channels= img.shape cv2.imshow("windows", img) #顯示圖片縮小後的圖片 Quit=0 #是否繼續執行標誌位 #提示停止方法 print ('Press key "Q" to stop.') while Quit==0: keycode=cv2.waitKey(3) #每3ms重新整理一次圖片,同時讀取3ms內鍵盤的輸入 if(keycode==ord('Q')): #如果按下“Q”鍵,停止執行標誌位置1,調出while迴圈,程式停止執行 Quit=1 ###仿射變換相關處理### #建立陣列,用於仿射變換Mat1 = np.array([ [1.6, 0, -150], #x軸放大1.6倍,並平移-150 [0, 1.6, -120] #y軸放大1.6倍,並平移-120 ], dtype=np.float32) img1 = cv2.warpAffine(img, Mat1, (img_width, img_height)) #仿射變換 cv2.imshow("windows1", img1) #視窗顯示圖片 cv2.imwrite('1.ImageProcess1.jpg', img1) #儲存圖片 theta = 15 * np.pi / 180 #15度的弧度值 #建立陣列,用於仿射變換 Mat2 = np.array([ [1, np.tan(theta), 0], #圖片繞上邊框逆時針旋轉 15 度 [0, 1, 0] ], dtype=np.float32) img2 = cv2.warpAffine(img, Mat2, (img_width, img_height)) #仿射變換 cv2.imshow("windows2", img2) #視窗顯示圖片 cv2.imwrite('1.ImageProcess2.jpg', img2) #儲存圖片 #建立陣列,用於仿射變換 Mat3 = np.array([ [np.cos(theta), -np.sin(theta), 0], #繞左上角順時針旋轉15度 [np.sin(theta), np.cos(theta), 0] ], dtype=np.float32) img3 = cv2.warpAffine(img, Mat3, (img_width, img_height)) #仿射變換 cv2.imshow("windows3", img3) #視窗顯示圖片 cv2.imwrite('1.ImageProcess3.jpg', img3) #儲存圖片 ###仿射變換相關處理### ###在圖片上畫畫### #畫直線 cv2.line(圖片, 起點座標, 終點座標, BGR, 線條粗細) cv2.line(img, (300, 150), (500,150), (255, 255, 0), 2) #畫圓cv2.circle(圖片, 原點座標, 半徑, BGR, 線條粗細) cv2.circle(img, (400, 100), 75, (0, 0, 255), 5) #畫矩形 cv2.rectangle(圖片, 矩形左上角座標, 矩形右下角, BGR, 線條粗細) cv2.rectangle(img, (620, 100), (700, 220), (255, 0, 0), 3) #建立多邊形頂點座標陣列(可以有多個多邊形) triangles = np.array([ [(200, 100), (145, 203), (255, 203)], [(60, 140), (20, 197), (100, 197)] ]) #畫填充多邊形 cv2.fillPoly(圖片, 多邊形頂點座標陣列, BGR) cv2.fillPoly(img, triangles, (0, 255, 0)) #顯示文字 cv2.putText(圖片,文字,文字左下角座標,字型顯示格式,字型大小,BGR,線條粗細) cv2.putText(img, 'WHEELTEC', (1, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2) cv2.imshow("windows_draw", img) #顯示畫畫後的圖片 ###在圖片上畫畫### #while迴圈裡迴圈讀取圖片 img_origin = cv2.imread('1.ImageProcess.jpg') img_height, img_width, img_channels = img_origin.shape #獲取圖片尺寸高度、寬度、通道數 #縮小圖片尺寸,再次獲取圖片尺寸 img = cv2.resize(img_origin, (int(img_width/2),int(img_height/2)), interpolation=cv2.INTER_AREA) img_height, img_width, img_channels = img.shape print ('Quitted!') #提示程式已停止 cv2.destroyAllWindows() #程式停止前關閉所有視窗