pythonopencv攝像頭
A. 樹莓派opencv python讀取攝像頭
你的報錯是找不到制定的function。
我的電腦上有這個:
In[1]:importcv2
In[2]:cv2.cvtColor
Out[2]:<functioncv2.cvtColor>
如果你沒有的話查查安裝的opencv全了么?
下面代碼跟你的基本一致,這個測試可用。
defcap_frame():
cap=cv2.VideoCapture(0)
ret,frame=cap.read()
plt.imshow(frame,cmap='gray',interpolation='bicubic')
cap.release()
returnframe
B. python如何調用IP攝像頭
正在用python+opencv做一個視頻採集程序,在一個區域網中有多個ip攝像頭和一個usb攝像頭,如何知道調用的是哪個攝像頭,檢查該攝像狀態,並且獲得該攝像頭的許可權,也就是收到該攝像頭的返回數據
C. 如何使用Python控制攝像頭拍照並發郵件
這個實現起來非常容易,主要分為2步,首先控制攝像頭拍照,然後將拍到的照片作為郵件附件發送就行,下面我簡單介紹一下實現過程,實驗環境win7+python3.6+pycharm5.0,主要內容如下:
控制攝像頭拍照
這里我們直接使用opencv的python介麵包就行,藉助於opencv強大的功能,我們只需要很少量的代碼就可以實現攝像頭拍照的功能,具體步驟如下:
1.首先,安裝opencv-python模塊,這個直接在cmd窗口輸入命令「pip install opencv-python」就行,如下,很快就能安裝成功:
2.安裝完成後,我們就可以編寫代碼來實現控制攝像頭拍照的功能了,測試代碼如下,非常簡單,打開攝像頭,按幀播放,當按下q鍵時保存圖片並退出,當前目錄下就會出現拍到的照片,後面就是將這個照片作為郵件附件進行發送:
發送郵件
這里以發送163郵件為例,主要用到Python自帶的smtplib模塊,專門用於發送郵件,具體步驟如下:
1.首先,需要開啟開啟郵箱POP3/SMTP服務,這個直接登錄郵箱,在上面菜單欄點擊「設置」,勾選POP3/SMPT服務就行,如下:
接著點擊左邊管理列表的「客戶端授權密碼」,設置授權密碼,後面的python代碼中需要藉助這個密碼才能登陸郵箱伺服器發送郵件:
2.一切設置完成後,我們就可以直接編寫代碼來發送帶有照片的郵件了,測試代碼如下,非常簡單,只需要在郵件中attach一下照片就行,函數輸入參數分別為發送人郵箱、密碼、接收人郵件列表、主題、內容和附件名稱:
運行這個程序,郵件就可以正常發送,並且可以看到發送的照片附件,如下:
至此,我們就完成了利用python來控制攝像頭拍照並發送郵件。總的來說,整個過程不難,思路也比較清晰,只要你有一定的python基礎,熟悉一下上面的代碼,多調試幾遍程序,很快就能掌握的,網上也有相關教程和資料,非常豐富詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。
D. mac本使用opencv打開攝像頭導致python意外退出
我再win上測試沒有問題,
import cv2
cap = cv2.VideoCapture(0)
while 1:
ret, frame = cap.read()
k = cv2.waitKey(1)
if k == 27:
break
cv2.imshow("capture", frame)
cap.release()
cv2.destroyAllWindows()
實在不行試試cv+pygame
代碼如下:
import pygame
import cv2
cap = cv2.VideoCapture(0)
ret, img = cap.read()
if not ret:
print("Can't read stream")
img = cv2.transpose(img)
print('shape:', img.shape)
pygame.init()
screen = pygame.display.set_mode((img.shape[0],img.shape[1]))
surface = pygame.surface.Surface((img.shape[0], img.shape[1]))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
ret, img = cap.read()
if not ret:
running = False
break
else:
img = cv2.transpose(img)
pygame.surfarray.blit_array(surface, img)
screen.blit(surface, (0,0))
pygame.display.flip()
pygame.quit()