macpythonopencv
① 在Mac上安裝opencv
原文: Mac 安裝opencv,並與python做關聯
最新版本的 opencv 已經不分 opencv3 了,而是在目錄下分成 python2 和 python3 版本的文件夾。
安裝好的 opencv 庫在 /usr/local/Cellar/opencv/ 。
不同版本分別在
這時候試試看是否成功
升級響應的依賴包
成功
② 安裝opencv為什麼一定要同時安裝python
一個庫就像一個工具箱,你需要去調用它,也就是自己編寫代碼去使用,那麼,用c 語言 c++ matlab 都可以。當然Python 也可以,只要庫提供了改需要的介面。Python 不是必裝的,但是可能Python 比較好用
OpenCV是一個基於BSD許可(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法。
③ 如何從python中opencv的陣列讀取原始PNG
PNG圖像從我的iPhone到我的MacBook通過TCP。 MacBook的代碼是從怎樣的形象與OpenCV的轉換? PNG格式被選中它們是有效的,但其他格式可以 我寫了一個測試程序,從文件中讀取的rawImage,但不知道如何將它轉化成:# Read rawImage from a file, but in reality will have it from TCPServer
f = open('frame.png', "rb")
rawImage = f.read()
f.close()
# Not sure how to convert rawImage
npImage = np.array(rawImage)
matImage = cv2.imdecode(rawImage, 1)
#show it
cv.NamedWindow('display')
cv.MoveWindow('display', 10, 10)
cv.ShowImage('display', matImage)
cv. WaitKey(0)
1. 另一種方式, 也是在閱讀一個實際的文件的情況下,這將適用於一個unicode路徑(在Windows上進行測試)with open(image_full_path, 'rb') as img_stream:
file_bytes = numpy.asarray(bytearray(img_stream.read()), dtype=numpy.uint8)
img_data_ndarray = cv2.imdecode(file_bytes, cv2.CV_LOAD_IMAGE_UNCHANGED)
img_data_cvmat = cv.fromarray(img_data_ndarray) # convert to old cvmat if needed
2. (你的問題似乎被標記的Objective-C,但你問的Python,所以是你的榜樣,所以我'的。) 我的第一篇文章對堆棧溢出! 簡歷。似乎是你在找什麼。 的LoadImage(iscolor=CV_LOAD_IMAGE_COLOR)→無Loads an image from a file as an IplImage.
Parameters:
filename (str) – Name of file to be loaded.
iscolor (int) –
Specific color type of the loaded image:
CV_LOAD_IMAGE_COLOR the loaded image is forced to be a 3-channel color image
CV_LOAD_IMAGE_GRAYSCALE the loaded image is forced to be grayscale
CV_LOAD_IMAGE_UNCHANGED the loaded image will be loaded as is.
該函數cvLoadImage載入圖像從指定的文件和 返回的指針載入的圖像。目前,下列文件 格式支持:Windows bitmaps - BMP, DIB
JPEG files - JPEG, JPG, JPE
Portable Network Graphics - PNG
Portable image format - PBM, PGM, PPM
Sun rasters - SR, RAS
TIFF files - TIFF, TIF
注意,在當前的alpha通道,如果有的話,是 從輸出圖像除去,例如4通道的RGBA圖像會 載入為RGB。
3. 我想通了:# Read rawImage from a file, but in reality will have it from TCPServer
f = open('frame.png', "rb")
rawImage = f.read()
f.close()
# Convert rawImage to Mat
pilImage = Image.open(StringIO(rawImage));
npImage = np.array(pilImage)
matImage = cv.fromarray(npImage)
#show it
cv.NamedWindow('display')
cv.MoveWindow('display', 10, 10)
cv.ShowImage('display', matImage)
cv. WaitKey(0)
④ 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()
⑤ opencv是干什麼的
OpenCV是一款由Intel公司俄羅斯團隊發起並參與和維護的一個計算機視覺處理開源軟體庫,支持與計算機視覺和機器學習相關的眾多演算法,並且正在日益擴展。
OpenCV基於C++實現,同時提供python, Ruby, Matlab等語言的介面。OpenCV-Python是OpenCV的Python API,結合了OpenCV C++ API和Python語言的最佳特性。
作用:
OpenCV是一個基於BSD許可發行的跨平台計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。OpenCV在計算機視覺的發展中發揮了重要的作用,使成千上萬的人能夠在視覺上做更多的工作。OpenCV允許學生,研究人員,專業人員和創業者高效地實施項目,並通過向他們提供可在多種平台上優化的計算機視覺架構。
⑥ 使用PyInstaller打包Python程序
PyInstaller是一個用來將Python程序打包成獨立可執行軟體的工具,支持 Windows、Linux 和 Mac OS X。生成的可執行軟體在沒有Python的環境中可以直接運行,方便軟體分發,進一步降低使用成本,提升使用效率。
下面演示如何使用 PyInstaller 將程序打包成Windows下的exe軟體。
使用pip的方式進行安裝,這樣可以自動安裝其他依賴庫。
如果pip還未安裝,請參考我的另一篇文章《 Python pip包管理工具 》
在cmd命令行控制台或者VS Code內置的終端輸入命令行生成應用,首先將當前路徑切換到Python程序所在的路徑(如下示例的SubOcr.py文件在python文件夾下的SubOcr文件夾內),然後輸入生成應用的命令。
命令執行成功後在 I:workpythonSubOcrdist 文件夾下生成了SubOcr文件夾,裡麵包含了SubOcr.exe文件。整個SubOcr文件夾就是一個綠色軟體,隨便移動到任何位置都可運行。
實際上在用pyinstaller命令時會在Python程序的所在路徑生成一個後綴為spec的同名文件,然後根據此文件的配置生成應用,這就是PyInstaller的原理。這樣做的好處是spec保存了生成應用的配置,每次重新生成應用時可以省略指定參數,尤其是指定了其他的資源、程序庫時。我們可以通過以下命令先生成spec文件。
pyi-makespec的命令參數跟pyinstaller的相同,在生成spec文件後可以對其部分選項進行編輯(可以用VS Code或自帶的記事本編輯),添加更多參數,然後再用pyinstaller命令生成應用。
spec文件的主要選項:
上面示例的SubOcr用到了opencc和opencv-python,其中opencc下的數據文件和opencv-python下的dll文件在生成應用時不會自動導入(缺少這些文件應用無法正常使用),因此需要在spec文件中指定路徑。對spec文件的修改如下:
以上便是PyInstaller打包Python程序的全過程,如果在此過程中遇到問題,可以在評論區留言,定當知無不言,言無不盡。
⑦ 如何在mac上安裝opencv與python
環境:Win8.1,Python2.7.11, Numpy 1.11.1,OpenCV2.4.10
1.安裝Python
我這里安裝的是python2.7.11,安裝完後檢查時候注冊。在cmd里輸入python,若出現「不是內部命令」,將python的安裝目錄添加到PATH,例如」C:\Python27」。出現下圖說明OK了。
2.安裝Numpy
安裝pip
若上面安裝出現沒找到python,先安裝pip。輸入python -m pip install -U pip
安裝完後將pip的路徑加到PATH里,例如」C:\Python27\Scripts」
再安裝numpy
現在開始安裝numpy,打開cmd,輸入pip install numpy
測試:
## 3.安裝opencv
在官網自行下載,這里下載的是opencv2.4.10安裝。
### (1)復制cv2.pyd
將」\opencv\build\python\2.7\x64」或」\opencv\build\python\2.7\x86」(根據python版本)文件夾中找到cv2.pyd」,復制到Python安裝文件的」C:\Python27\Lib\site-packages」文件夾中。
測試:
使用pycharm,用下面代碼進行測試:
import cv2
import numpy as np
img = cv2.imread("C:\lena.jpg")
cv2.imshow("lena",img)
cv2.waitKey(10000)
出現女神,大功告成!
⑧ python用cv2怎麼輸出圖像的基本信息
源碼:
#!/usr/bin/env python
#coding=utf-8
__author__ = 'zhangdebin'
import cv2
if __name__ == '__main__':
#image read
image = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg")
image0 = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg",0)
image1 = cv2.imread("/Users/zhangdebin/Documents/checkFace2.jpg",1)
print image
cv2.namedWindow("the window")
cv2.imshow("the window", image)
cv2.namedWindow("the window0")
cv2.imshow("the window0", image0)
cv2.namedWindow("the window1")
cv2.imshow("the window1", image1)
cv2.waitKey(0)
其中,cv2是我在mac系統中安裝的python-opencv包,具體安裝方法在另一篇博文有介紹,
cv2.imread和matlab中的imread函數很像,其中源碼有一個參數imread(…)
imread(filename[, flags]) -> retval,falgs經測試,當預設時為原圖像,當falgs=0時,因為只讀取第一個位元組,彩色圖像讀取為灰度圖像,當falgs逐漸增加,向7(0~7,8位)靠攏時,位元組數增加,圖像色彩越來越靠近原圖像,當超過8位,比如8,變為(8-8=0),又是只取一個位元組,視覺效果為灰度圖,同理,15位為原圖,有興趣的朋友可以自己測試下,具體效果見下圖:
同時,cv2中自帶了falgs =cv2.CV_LOAD_IMAGE_GRAYSCALE或
cv2.CV_LOAD_IMAGE_COLOR,其實這兩個參數和上面是一樣的,0為grayimage,但是color=1,而且顯示時候也不是彩色的,這和matlab的imread有很大區別
grayimage = cv2.imread('/Users/zhangdebin/Documents/checkoutFace2.jpeg',cv2.CV_LOAD_IMAGE_GRAYSCALE);
colorimage = cv2.imread('/Users/zhangdebin/Documents/checkoutFace2.jpeg', cv2.CV_LOAD_IMAGE_COLOR)
print 'cv2.grayscale:'
print cv2.CV_LOAD_IMAGE_GRAYSCALE
print 'colr:'
print cv2.CV_LOAD_IMAGE_COLOR
cv2.grayscale:
0
colr:
1
⑨ opencv能做什麼
OpenCV可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法。(9)macpythonopencv擴展閱讀
為什麼有OpenCV
計算機視覺市場巨大而且持續增長,且這方面沒有標准API,如今的計算機視覺軟體大概有以下三種:
1、研究代碼(慢,不穩定,獨立並與其他庫不兼容)
2、耗費很高的商業化工具(比如Halcon, MATLAB+Simulink)
3、依賴硬體的一些特別的解決方案(比如視頻監控,製造控制系統,醫療設備)這是如今的現狀,而標準的API將簡化計算機視覺程序和解決方案的開發,OpenCV致力於成為這樣的`標准API。
OpenCV致力於真實世界的實時應用,通過優化的C代碼的編寫對其執行速度帶來了可觀的提升,並且可以通過購買Intel的IPP高性能多媒體函數庫(Integrated Performance Primitives)得到更快的處理速度。右圖為OpenCV與當前其他主流視覺函數庫的性能比較。