您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用python構建圖像采集接口應用程序”,在日常操作中,相信很多人在怎么用python構建圖像采集接口應用程序問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用python構建圖像采集接口應用程序”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我們將使用的圖像庫是cv2。因為cv2不能在Kaggle這樣的在線平臺上工作,所以它必須在你的計算機上本地完成。然而,模型的權重仍然可以在Kaggle上進行訓練,以.h6文件的形式下載(基于Keras/TensorFlow)并加載。
在Anaconda或命令提示符中鍵入
conda create -n opencv python=3.6
這將在Python版本3.6中創建一個名為opencv的新環境,可以用正在使用的任何版本替換它。
下一步,輸入
pip install opencv-python
你已經成功安裝了cv2! 現在你可以開始拍照了。
首先,導入庫。
import cv2
接下來,我們必須創建一個視頻捕獲實例。你可以測試實例是否能夠連接到你的相機(如果沒有,請檢查你的設置以確保應用程序可以訪問它)。
cap = cv2.VideoCapture(0) if not (cap.isOpened()): print("Video device not connected.")
最后,是時候拍照了。如果要控制拍攝照片的時間,第一行將指定任意變量和輸入。除非輸入了某些內容(如按“回車”),然后下一行開始拍照,否則程序無法繼續。拍攝圖像時,你可能會看到網絡攝像頭指示燈很快出現。第三行關閉連接,第四行銷毀訪問相機的所有實例。
arb = input('Press enter to take picture.') ret, frame = cap.read() cap.release() cv2.destroyAllWindows()
圖像中的數據存儲在frame
中。可以使用以下代碼將其轉換為數組:
cv2_im = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
調用cv2_im.shape
時,輸出為(480640,3)。因此,圖像(對于我的相機)是480×640像素(3表示“深度”, 每個像素中有三個值說明創建最終像素顏色需要包含紅色、綠色和藍色)。
現在圖像已轉換為數組,matplotlib的imshow()可以顯示它。
import matplotlib.pyplot as plt plt.imshow(cv2_im) plt.show()
完整代碼:
import cv2 import matplotlib.pyplot as plt cap = cv2.VideoCapture(10) if not (cap.isOpened()): print("Video device unconnected.") arb = input('Press enter to take picture.') ret, frame = cap.read() cap.release() cv2.destroyAllWindows() cv2_im = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) plt.imshow(cv2_im) plt.show()
卷積神經網絡只接受固定大小的圖像,例如(100,100,3)。有幾種方法可以做到這一點。
為了保持圖像的比例長度,可以嘗試裁剪圖像。
一般語法是:
plt.imshow(cv2_im[y_upper_bound:y_lower_bound,x_lower_bound:x_higher_bound])
其中“upper”和“lower”由圖像上的位置確定(y
的“upper”表示圖像的上方,x
的“upper”表示圖像的右側)。
例如,
plt.imshow(cv2_im[100:400,100:400])
這里把照片裁剪成正方形。
但是,尺寸仍然是300×300。為了解決這個問題,我們將再次使用Pillow:
pil_image = Image.fromarray(cv2_im[100:400,100:400]) width = 100 height = 100 pil_image = pil_image.resize((width,height), Image.ANTIALIAS)
NumPy自動將Pillow圖像轉換為數組。
import numpy as np cv2_im_new = np.array(pil_image)
查看新圖像:
plt.imshow(cv2_im_new)
好多了!圖像的新形狀是(100,100,3), 非常適合我們的模型。
現在我們有了NumPy數組,只需將其傳遞到模型中即可。
model.predict(cv2_im_new)
基于此,通過一些手動編碼來標記圖像的真實標簽,可以在title中標記它們:
plt.imshow(cv2_im_new) plt.title('Hand Gesture: '+classification)
到此,關于“怎么用python構建圖像采集接口應用程序”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。