1. 如何用python 讀OPC(OLE for Process Control)歷史數據
伺服器那邊會有一個DLL文件,在客戶端引用以後,就可以調用裡面的方法和函數
2. 物聯網如何學習
想要成為一名物聯網工程師,可以學習以下幾個方面:
1、物聯網產業與技術導論:全面了解物聯網RFID、M2M、感測網、兩化融合等技術與應用。
2、C語言程序設計:物聯網涉及底層編程,C語言為必修課,同時需要了解OSGi,OPC,Silverlight等技術標准。
3、Java程序設計:物聯網應用層,伺服器端集成技術,開放Java技術也是必修課,同時需要了解Eclipse,SWT,Flash,HTML5等技術使用。
4、TCP/IP網路與協議:TCP/IP以及OSI網路分層協議標準是所有有線和無線網路協議的基礎,Socket編程技術也是基礎技能。
5、嵌入式系統技術:嵌入式系統是物聯網感知層和通訊層重要技術。
6、無線感測網路:學習各種無線RF通訊技術與標准,Zigbee,藍牙,WiFi,GPRS,CDMA,3G,4G,5G等。
(2)opcpython擴展閱讀
物聯網的基本特徵
1、整體感知
可以利用射頻識別、二維碼、智能感測器等感知設備感知獲取物體的各類信息。
2、可靠傳輸
通過對互聯網、無線網路的融合,將物體的信息實時、准確地傳送,以便信息交流、分享。
3、智能處理
使用各種智能技術,對感知和傳送到的數據、信息進行分析處理,實現監測與控制的智能化。
3. 當下哪種語言更重要
面向底層,或高效率用C:如單片機,操作系統,資料庫實現
面向上層應用面向對象編程C++高效率:VC/QT/GTK編程,現在WPSlinux版是QT實現的
面向對象編程JAVA, Android,網頁腳本,也能編寫PC機應用比如freemind, 也有嵌入式方面的應用.
再就是網路動態語言,jsp/php/asp , jsp一般用於大型網站,php是開源較多,主要一般網站伏沒規模不大的在用,asp 好像不溫不火,
比較流行的:go python 還要懂shell腳本編程,
面向硬體的有:VHDL/verilog
matlab:演算法模擬
無論選哪種語言,商業開發基本上都會涉及到資料庫,db2、oraclemysql好像比較出名
小型資料庫sqlite,Android 就是用的這個
總之,各有各的用處,看你對哪方面感興趣,要學的有很多.
我是學嵌入式的,看一下我收集的嵌入式方面需要掌握的知識與技能:
=================================================================
Altium Designer 原理圖和PCB製作
STM32處理器
需求分析、設計方案
嵌入式軟硬體系統的設計、測缺畢納試;
技術文檔;
生產工藝技術支持。
-------------------------------------------------------------------
Linux平台下進行軟體開發
音視頻編解碼SDK的進行封裝
音視頻流存儲、傳輸模塊,設計、實現、優化及測試
編寫相關開發文檔、技術支持文檔、使用說明
=====
C/C++ 良好的編程習慣與文檔規范;
Linux 下進程間通信及內存管理機制
熟悉H.264,G.7xx,AMR,AAC等音視頻編碼
熟悉MP4,avi等文件格式
熟悉rtsp/rtp、rtmp、http
海思或者amberalla平台
通和協調能力
----------------------------------------------------------------------------
熟悉1種以上資料庫
--------------------------------------------------------------
機器人開發經歷或參加機器人相關研究
熟悉Android framework,以及Linux驅動開發,調試,有QT程經驗
熟練閱讀電路原理圖,以及PCB layout;
有效地對新人或普通開發工程師進行輔導
---------------------------------------------------------------------------
悉嵌入式環境下的 C/C++ 語言程序設計和匯編語言程序設計
精通個域網通信協議,如無線網路(Wi-Fi、BlueTooth、Zigbee等)等協議,具有智能家數轎居產品相關經驗
RM環境下的系統開發環境與工具,包括平台移植、驅動開發及調試,等等;
數字電路模擬電路基礎,熟悉uCOS,Linux,RThread,FreeRTOS等嵌入式操作系統內核程序設計
深入掌握一種或幾種嵌入式處理器系統(熟悉Arm、X86、PPC、MIPS)
---------------------------------------------------------------------------
WIFI模塊
----------------------------------------
懂日語、32歲以下
-------------------------------------------------------------------------------------
bootloader、內核板級移植、集成。
海思或者amberalla平台開發經驗
外設介面和通信協議,包括USB,CAN,LIN,TCP/IP等多種汽車和工業匯流排技術
無線通訊模塊、藍牙、GPRS、有線及無線通訊
物聯網電子消費品產品開發經驗
電氣電子產品開發和項目管理經驗
--------------------------------------------------------------------------------------
精通如下串列匯流排協議:USB/I2C/SPI/I2S/UART
悉Boot Loader,
具有Linux BSP經驗者
具備良好溝通、協作、學習能力,能夠主動在項目中承擔起責任
寫和移植內核設備驅動
裁剪和優化的Linux內核
----------------------------------------------------------------------------------
團隊管理經驗
硬體基本原理,能看懂原理圖和PCB
精通linux內核架構,熟悉多線程編程
精通多種常用傳輸匯流排協議,如IIC、SPI、CAN、IIS;
對無線網路數據傳輸有較深了解;使用過無線傳輸模塊,GPRS、3G等
WIFI驅動、WIFI應用、藍牙驅動、藍牙應用有較深的了解
對USB驅動有較深了解,做過USB設備驅動、對SD卡和TF卡
車載電子設備
熟悉視頻、音頻處理,熟悉視頻、音頻編解碼處理;
熟悉安卓架構,能編寫安卓中間件
ARM或DSP嵌入式軟體開發經驗
-----------------------------------------------------------------------------------------------
入式Linux系統體系結構設計,系統內核維護;
根據需求制定系統整體軟體方案,劃分軟體模塊;
優化uboot、Linux內核相關模塊;
深入了解ARM(Cortex-A8以上)體系結構
常用驅動程序及相關協議,如:Framebuffer、乙太網、USB、CAN匯流排、I2C、SPI等。可以對驅動程序進行深度的優化;
對視頻/圖像有較深刻認識,了解視頻/圖像編解碼相關知識;
使用OPenGL完成圖像渲染;
負責研究和開發3D引擎到Opengl的標准化介面;
深入理解QT底層實現機制。熟悉QT在不同平台之間的移植;
Ti/Freescale ARM開發經驗
認真對待每一項工作,同事之間團結互助;
良好的英文交流能力
--------------------------------------------------------------------------------------------
熟悉wifi,nrf2401,camera,audio 等外圍模組及相關協議
熟悉ucos—2
智能家居方面的實際開發經驗
----------------------------------------------------------------------------------
單片機、ARM、Cotrex-M3/M4等處理器
掌握網路、UART、LCD、SPI、I2C、RS485
搭建嵌入式Linux軟硬體系統
熟悉Linux內核機制
熟練完成嵌入式下linux的驅動開發與應用開發。
熟悉TCP/IP協議棧,Socket通信編程
熟悉HTTP、SNMP、DHCP等應用層協議。
CAN匯流排、WIFI、Zigbee等相關產品開發經驗
良好的語言表達溝通能力和團隊合作精神
------------------------------------------------------------------------------------
broad expertise
-----------------------------------------------------------------------------------------
具有linux,freeRTOS等主流嵌入式系統開發經驗
熟悉TCP/IP、WIFI、藍牙BLE、I2C等協議
有音頻、Andorid開發、Java虛擬機、雲端數據同步、智能家居產品等開發經驗
嵌入軟體, 驅動,協議棧,協議開發經驗
精通TCP/IP協議
用網路協議,了解防火牆, 路由交換技術
無線協議802.11,802.1X
熟悉Wi-Fi、ZigBee、藍牙,模擬信號、UART、RS232、RS485、各種現場匯流排、HART-IP、TCP/IP、OPC、OPC UA、BACNet等協議
立志於一起打造互聯網+工業。
---------------------------------------------------------------------------------------------
熟悉8583、EMV、PBOC等相關行業知識
3年以上 嵌入式 Linux 驅動開發經驗
讀懂硬體圖紙
熟練掌握 i2c、i2s、spi、gpio、uart、usb、lcd/framebuffer 等常用 Linux 驅動
Linux 中斷程序開發;
電機控制驅動、Linux系統管理、系統版本升級 等開發經驗
---------------------------------------------------------------------------------------------
雷達、超聲項目相關的研發
扎實全面的硬體電路設計、調試能力,熟悉模擬、數字及混合電路;
擁有DSP(TI TMS系列為佳),ARM, FPGA/CPLD 設計經驗;
解決並優化整體系統的信噪比、電磁屏蔽、能耗管理和熱耗散管理
熟悉PCB 布線,製版和調試
有擔任規模量產項目技術研發經歷
掌握交叉編譯環境、熟練典型Linux系統調用和應用程序開發
熟練掌握至少一種版本管理工具(如:SVN、GIT等);
對Linux系統內核及驅動程序有深入理解
對Linux內核進行深度定製和修改
------------------------------------------------------------------------------------------------
熟悉uC/OS下Camera,LCD、WIFI、RIL、IIC、SPI、UART、2G、各類型Sensor等各種外設驅動驅動模型
做過傳統單片機 pos 機 或類似stm32 pos機項目經驗
熟悉PBOC協議
能夠使用示波器和邏輯分析儀等
--------------------------------------------------------------------
C/C++ 網路及多線程編程
熟悉OpenWrt開發,移植
悉Qualcomm SDK者優先,有一定的演算法基礎,
----------------------------------------------------------------
用有電子工具軟體PROTEL\PADS等
網關產品,協議轉換類產品編程經驗
精通TCP/IP,ZIGBEE,MQTT協議,了解至少一種工業匯流排;
能獨立承擔產品的設計規劃,周邊介面硬體電路設計,功能軟體設計;
---------------------------------------------------------------------
熟悉C/C++/JAVA/J2ME語言編程
入式Linux操作系統,Linux驅動開發
精通Android開發平台及Framework框架原理
熟悉基本無線協議;
責任心和進取心
團隊協作
善於溝通和表達
獨立設計優化和移植HAL層外設模塊,如Camera、WiFi、藍牙、觸摸屏等模塊;
將Android系統移植到特定硬體平台上
給上層app及UI開發提供支持
--------------------------------------------------------------------------
移植和底層驅動
熟悉Linux內核架構;
Makefile、shell等腳本語言
熟悉RTP,RTCP,RTSP等流媒體協議
熟練使用Ethereal、Wireshark和Tcpmp等網路協議分析工具;
DVR、MDVR、DVS等監控產品開發經驗
-------------------------------------------------------------------------
產品的規劃設計、安卓等平台的底層驅動程序編寫調試
主板調試及外設調試,確保項目中驅動部分的質量和進度
獨立完成各業務模塊的驅動開發工作以及技術難題攻關、技術評估;
模塊的需求分析、詳細設計、編碼實現、和單元自測,參與產品需求分析並制定技術實施方案,根據產品功能需求設計並完成軟體實現,了解項目需求和業務流程。
2年以上單片機系統軟體開發經驗,2年以上的Android系統軟體驅動開發經驗(有成熟產品移植開發經驗),有WINCE平台開發經驗更佳;
uboot、kenel Driver開發以及HAL層等開發、調試和集成工作
熟悉ARM系列處理器架構,包括簡單的ARM處理器(Cortex-M3/M0)和復雜的多核ARM處理器的應用設計經驗;
無線網路數據傳輸有較深了解;使用過無線傳輸模塊,GPRS、3G等;
對USB驅動有較深了解,做過USB設備驅動、對SD卡和TF卡等實際應用上有獨到的心得體會或做過車載電子設備
夠獨立解決各類底層疑難問題,能夠同硬體和軟體應用工程師一起合作解決復雜問題;
責任心,主動學習,團隊溝通協作,文檔輸出, 英語讀寫
---------------------------------------------------------------------------------
精通Wifi協議及應用開發,熟悉博通與MTK系列wifi晶元;
熟悉TCPIP協議,熟悉HTTP、FTP等網路協議應用和開發
熟悉Wifi、射頻產品的生產和測試
必須有broadcom、Atheros或MTK的一種wifi方案經驗
自我驅動的學習和工作習慣
對未知技術和領域能快速掌握並實踐
溝通、協調, 項目管理、團隊管理
---------------------------------------------------------------------------------------
Socket編程,多線程編程,進程間通信
熟悉TCP/IP協議;熟悉HTTP,UDP/RTP/RTCP/RTS等流媒體傳輸與控制協議;
熟悉音視頻壓縮技術
------------------------------------------------------------
悉實時操作系統如ThreadX,FreeRTOS
熟悉串口,TCPIP協議,WIFI,GPIO,JTAG等底層編程
家電無線模塊軟體開發
不同硬體平台選型開發
撰寫並維護相關技術文檔
-----------------------------------------------------------------------
通32 bit ARM單片機系統開發,熟悉Atmel晶元
精通uCOSII系統,有相關開發經驗
OS(uCOSII與Linux)移植、驅動編寫與應用軟體開發
------------------------------------------------------------------------
主流單片機、ARM、FPGA硬體平台
熟悉VHDL/Verilog語言進行FPGA開發;
有效實現板級系統間數據通訊,
了解衛星通訊協議
熟悉使用LabView進行數據採集和系統測試
獨立進行PCB開發並聯系相關廠家進行生產
熟悉中國電子信息產業鏈,不僅懂得怎樣設計, 還要知道怎樣利用現有市場產品, 經濟快速有效地實現自己的設計
了解電子產品國際市場, 能夠從市場角度去開發產品;
英語能力可以應付國際化工作環境, 能夠熟練使用法語德語更好。
在本專業領域內有豐富人脈,能夠在全世界范圍內為具體問題找到合適的人;
4. 實現python文本寫入word
准備
我測試使用的Python版本為2.7.10,如果你的版本是Python3.5的話,這里就不太適合了。
使用Speech API
原理
我們的想法是藉助微軟的語音介面,所以我們肯定是要進行調用 相關的介面。所以我們需要安裝pywin32來幫助我們完成這一個底層的交互。
示例代碼
import win32com.clientspeaker = win32com.client.Dispatch("SAPI.SpVoice")speaker.Speak("Hello, it works!")
小總結
是的,調用介面來實現語音功能就是這么簡單,但是我們不得不來聊一聊這種方式的缺點。
對中文支持的不夠好,僅僅是這一點,估計在中國沒幾個用它的了。
還有就是語速不能很好的控制
pyttsx方式
原理
pyttsx 是Python的一個關於文字轉語音方面的很不錯的庫。我們還可以藉助pyttsx來實現在線朗讀rfc文件或者本地文件等等,最為關鍵的是,它對中文支持的還是不錯的。
示例代碼
# coding:utf-8import sysreload(sys)sys.setdefaultencoding('utf8')# __author__ = '郭 璞'# __date__ = '2016/8/6'# __Desc__ = 文字轉語音輸出import pyttsxengine = pyttsx.init()engine.say('hello world')engine.say('你好,郭璞')engine.runAndWait()# 朗讀一次engine.endLoop()
小總結
使用pyttsx,我們可以藉助其強大的API來實現我們基本的業務需求。很酷吧。
pyttsx深入研究
做完上面的小實驗,你肯定會覺得怎麼這么不過癮呢?
別擔心,下面我們就一起走進pyttsx的世界,深入的研究一下其工作原理吧。
語音引擎工廠
類似於設計模式中的「工廠模式」,pyttsx通過初始化來獲取語音引擎。當我們第一次調用init操作的時候,會返回一個pyttsx的engine對象,再次調用的時候,如果存在engine對象實例,就會使用現有的,否則再重新創建一個。
pyttsx.init([driverName : string, debug : bool]) → pyttsx.Engine
從方法聲明上來看,第一個參數指定的是語音驅動的名稱,這個在底層適合操作系統密切相關的。如下:
1.drivename:由pyttsx.driver模塊根據操作系統類型來調用,默認使用當前操作系統可以使用的最好的驅動
sapi5 - SAPI5 on Windows
nsss - NSSpeechSynthesizer on Mac OS X
espeak - eSpeak on every other platform
2.debug: 這第二個參數是指定要不要以調試狀態輸出,建議開發階段設置為True
引擎介面
要想很好的運用一個庫,不了解其API是不行的。下面來看看pyttsx。engine.Engine的引擎API。
方法簽名 參數列表 返回值 簡單釋義
connect(topic : string, cb : callable) topic:要描述的事件名稱;cb:回調函數 → dict 在給定的topic上添加回調通知
disconnect(token : dict) token:回調失聯的返回標記 Void 結束連接
endLoop() None → None 簡單來說就是結束事件循環
getProperty(name : string) name有這些枚舉值「rate, vioce,vioces,volumn → object 獲取當前引擎實例的屬性值
setProperty(name : string) name有這些枚舉值「rate, vioce,vioces,volumn → object 設置當前引擎實例的屬性值
say(text : unicode, name : string) text:要進行朗讀的文本數據; name: 關聯發音人,一般用不到 → None 預設要朗讀的文本數據,這也是「萬事俱備,只欠東風」中的「萬事俱備」
runAndWait() None → None 這個方法就是「東風」了。當事件隊列中事件全部清空的時候返回
startLoop([useDriverLoop : bool]) useDriverLoop:是否啟用驅動循環 → None 開啟事件隊列
元數據音調
在pyttsx.voice.Voice中,處理合成器的發音。
age
發音人的年齡,默認為None
gender
以字元串為類型的發音人性別: male, female, or neutral.默認為None
id
關於Voice的字元串確認信息. 通過 pyttsx.engine.Engine.setPropertyValue()來設置活動發音簽名. 這個屬性總是被定義。
languages
發音支持的語言列表,如果沒有,則為一個空的列表。
name
發音人名稱,默認為None.
更多測試
朗讀文本
import pyttsxengine = pyttsx.init()engine.say('Sally sells seashells by the seashore.')engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
事件監聽
import pyttsxdef onStart(name): print 'starting', namedef onWord(name, location, length): print 'word', name, location, lengthdef onEnd(name, completed): print 'finishing', name, completedengine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
打斷發音
import pyttsxdef onWord(name, location, length): print 'word', name, location, length if location > 10: engine.stop()engine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
更換發音人聲音
engine = pyttsx.init()voices = engine.getProperty('voices')for voice in voices: engine.setProperty('voice', voice.id) engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
語速控制
engine = pyttsx.init()rate = engine.getProperty('rate')engine.setProperty('rate', rate+50)engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
音量控制
engine = pyttsx.init()volume = engine.getProperty('volume')engine.setProperty('volume', volume-0.25)engine.say('The quick brown fox jumped over the lazy dog.')engine.runAndWait()
執行一個事件驅動循環
engine = pyttsx.init()def onStart(name): print 'starting', namedef onWord(name, location, length): print 'word', name, location, lengthdef onEnd(name, completed): print 'finishing', name, completed if name == 'fox': engine.say('What a lazy dog!', 'dog') elif name == 'dog': engine.endLoop()engine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.', 'fox')engine.startLoop()
使用一個外部的驅動循環
engine = pyttsx.init()engine.say('The quick brown fox jumped over the lazy dog.', 'fox')engin(www.alOnely.Com.Cn)e.startLoop(False)# engine.iterate() must be called inside externalLoop()externalLoop()engine.endLoop()
總結
以上就是Python如何實現文本轉語音的全部內容,看完了上面的講述,是不是感覺Python實現文本轉語音還是蠻簡單的?那麼,大家快來嘗試嘗試吧。希望本文對大家學習Python有所幫助。
5. opc轉socket
opc轉socket可以:
1、採用python開發環境(32位),支持WindowsALL操作系統的OPCDAServer的數據讀取,老兆昌如(Kepserver、Matrikon、GEIGS、亞控、力控等)侍扒。
2、提供SocketServer(TCP)伺服器功能,支持不同平台的SocketClient的連接和通訊交互。
3、多線程機制,支猜散持多socket客戶端同時通訊交互,時效性高。
6. 常用的十大python圖像處理工具
原文標題:10 Python image manipulation tools.
作者 | Parul Pandey
翻譯 | 安其羅喬爾、JimmyHua
今天,在我們的世界裡充滿了數據,圖像成為構成這些數據的重要組成部分。但無論是用於何種用途,這些圖像都需要進行處理。圖像處理就是分析和處理數字圖像的過程,主要旨在提高其質量或從中提取一些信息,然後可以將其用於某種用途。
圖像處理中的常見任務包括顯示圖像,基本操作如裁剪、翻轉、旋轉等,圖像分割,分類和特徵提取,圖像恢復和圖像識別。Python成為這種圖像處理任務是一個恰當選擇,這是因為它作為一種科學編程語言正在日益普及,並且在其生態系統中免費提供許多最先進的圖像處理工具供大家使用。
讓我們看一下可以用於圖像處理任務中的常用 Python 庫有哪些吧。
1.scikit-image
scikit-image是一個開源的Python包,適用於numpy數組。它實現了用於研究,教育和工業應用的演算法和實用工具。即使是那些剛接觸Python生態系統的人,它也是一個相當簡單直接的庫。此代碼是由活躍的志願者社區編寫的,具有高質量和同行評審的性質。
資源
文檔里記錄了豐富的例子和實際用例,閱讀下面的文檔:
http://scikit-image.org/docs/stable/user_guide.html
用法
該包作為skimage導入,大多數功能都在子模塊中找的到。下面列舉一些skimage的例子:
圖像過濾
使用match_template函數進行模板匹配
你可以通過此處查看圖庫找到更多示例。
2. Numpy
Numpy是Python編程的核心庫之一,並為數組提供支持。圖像本質上是包含數據點像素的標准Numpy數組。因此,我們可以通過使用基本的NumPy操作,例如切片、掩膜和花式索引,來修改圖像的像素值。可以使用skimage載入圖像並使用matplotlib顯示圖像。
資源
Numpy的官方文檔頁面提供了完整的資源和文檔列表:
http://www.numpy.org/
用法
使用Numpy來掩膜圖像.
3.Scipy
scipy是Python的另一個類似Numpy的核心科學模塊,可用於基本的圖像操作和處理任務。特別是子模塊scipy.ndimage,提供了在n維NumPy數組上操作的函數。該包目前包括線性和非線性濾波,二值形態學,B樣條插值和對象測量等功能函數。
資源
有關scipy.ndimage包提供的完整功能列表,請參閱下面的鏈接:
https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html#correlation-and-convolution
用法
使用SciPy通過高斯濾波器進行模糊:
4. PIL/ Pillow
PIL( Python圖像庫 )是Python編程語言的一個免費庫,它支持打開、操作和保存許多不同的文件格式的圖像。然而, 隨著2009年的最後一次發布,它的開發停滯不前。但幸運的是還有有Pillow,一個PIL積極開發的且更容易安裝的分支,它能運行在所有主要的操作系統,並支持Python3。這個庫包含了基本的圖像處理功能,包括點運算、使用一組內置卷積核的濾波和色彩空間的轉換。
資源
文檔中有安裝說明,以及涵蓋庫的每個模塊的示例:
https://pillow.readthedocs.io/en/3.1.x/index.html
用法
在 Pillow 中使用 ImageFilter 增強圖像:
5. OpenCV-Python
OpenCV( 開源計算機視覺庫 )是計算機視覺應用中應用最廣泛的庫之一 。OpenCV-Python 是OpenCV的python版API。OpenCV-Python的優點不只有高效,這源於它的內部組成是用C/C++編寫的,而且它還容易編寫和部署(因為前端是用Python包裝的)。這使得它成為執行計算密集型計算機視覺程序的一個很好的選擇。
資源
OpenCV-Python-Guide指南可以讓你使用OpenCV-Python更容易:
https://github.com/abidrahmank/OpenCV2-Python-Tutorials
用法
下面是一個例子,展示了OpenCV-Python使用金字塔方法創建一個名為「Orapple」的新水果圖像融合的功能。
6. SimpleCV
SimpleCV 也是一個用於構建計算機視覺應用程序的開源框架。有了它,你就可以訪問幾個高性能的計算機視覺庫,如OpenCV,而且不需要先學習了解位深度、文件格式、顏色空間等。
它的學習曲線大大小於OpenCV,正如它們的口號所說「計算機視覺變得簡單」。一些支持SimpleCV的觀點有:
即使是初學者也可以編寫簡單的機器視覺測試攝像機、視頻文件、圖像和視頻流都是可互操作的資源
官方文檔非常容易理解,而且有大量的例子和使用案例去學習:
https://simplecv.readthedocs.io/en/latest/
用法
7. Mahotas
Mahotas 是另一個計算機視覺和圖像處理的Python庫。它包括了傳統的圖像處理功能例如濾波和形態學操作以及更現代的計算機視覺功能用於特徵計算,包括興趣點檢測和局部描述符。該介面是Python語言,適合於快速開發,但是演算法是用C語言實現的,並根據速度進行了調優。Mahotas庫速度快,代碼簡潔,甚至具有最小的依賴性。通過原文閱讀它們的官方論文以獲得更多的了解。
資源
文檔包括安裝指導,例子,以及一些教程,可以更好的幫助你開始使用mahotas。
https://mahotas.readthedocs.io/en/latest/install.html
用法
Mahotas庫依賴於使用簡單的代碼來完成任務。關於『Finding Wally』的問題,Mahotas做的很好並且代碼量很少。下面是源碼:
https://mahotas.readthedocs.io/en/latest/wally.html
8. SimpleITK
ITK 或者 Insight Segmentation and Registration Toolkit是一個開源的跨平台系統,為開發人員提供了一套廣泛的圖像分析軟體工具 。其中, SimpleITK是建立在ITK之上的簡化層,旨在促進其在快速原型設計、教育、解釋語言中的應用。SimpleITK 是一個圖像分析工具包,包含大量支持一般過濾操作、圖像分割和匹配的組件。SimpleITK本身是用C++寫的,但是對於包括Python以內的大部分編程語言都是可用的。
資源
大量的Jupyter Notebooks 表明了SimpleITK在教育和研究領域已經被使用。Notebook展示了用Python和R編程語言使用SimpleITK來進行互動式圖像分析。
http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/
用法
下面的動畫是用SimpleITK和Python創建的剛性CT/MR匹配過程的可視化 。點擊此處可查看源碼!
9. pgmagick
pgmagick是GraphicsMagick庫的一個基於python的包裝。 GraphicsMagick圖像處理系統有時被稱為圖像處理的瑞士軍刀。它提供了一個具有強大且高效的工具和庫集合,支持以88種主要格式(包括重要格式,如DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF)讀取、寫入和操作圖像。
資源
有一個專門用於PgMagick的Github庫 ,其中包含安裝和需求說明。還有關於這個的一個詳細的用戶指導:
https://github.com/hhatto/pgmagick
用法
使用pgmagick可以進行的圖像處理活動很少,比如:
圖像縮放
邊緣提取
10. Pycairo
Pycairo是圖像處理庫cairo的一組Python捆綁。Cairo是一個用於繪制矢量圖形的2D圖形庫。矢量圖形很有趣,因為它們在調整大小或轉換時不會失去清晰度 。Pycairo是cairo的一組綁定,可用於從Python調用cairo命令。
資源
Pycairo的GitHub庫是一個很好的資源,有關於安裝和使用的詳細說明。還有一個入門指南,其中有一個關於Pycairo的簡短教程。
庫:https://github.com/pygobject/pycairo指南:https://pycairo.readthedocs.io/en/latest/tutorial.html用法
使用Pycairo繪制線條、基本形狀和徑向梯度:
總結
有一些有用且免費的Python圖像處理庫可以使用,有的是眾所周知的,有的可能對你來說是新的,試著多去了解它們。
7. 觸摸屏高端邊緣計算網關
計訊物聯觸摸屏邊緣計算網關TG462內置了豐富的通信協議庫,非常適用於工業現場的數據採集和與遠程傳輸、設備遠程維護與控制、大型設備生命周期管理、各類型通信協議解析和轉換等工業領域物聯網應用場景。
豐富的行業應用介面,可同時接入多個設備、感測器、儀表等。
支持4個RS232介面(其中1路做DEBUG)、3個RS485介面(其中1路和RS232復用)、1個I2C介面、1個TTL電平串口、4路開關量輸入介面、 8路模擬量輸入介面(12位AD、支持4-20mA電流或0-5V電壓信號)、4路繼電器輸出、5路電源輸出(外設供電)等可兼容採集多種工業感測器採集需求。
多種網路通信模式,適用各種組網應用。
集全網通5G/4G/3G/2G/GPRS網路、廣域網、區域網、WIFI(可選)等多洞信臘種通信方式,可選NB-IOT通信方式,支持有線和無線互為備份;
超強數據採集、協議轉換能力,讓數據交互更順暢!
支持ModbusRTU、ModbusTCP、MQTT、OPC、HTTP、環保212規約、住建部能耗規約,支持定製第三方的上位機通信協議。可實現串口數據、模擬量和開關量信號、2路區域網數據的採集並轉發至指定伺服器。支持多中心通信,可同時與多個後台伺服器進行通信。
TG462 觸摸屏邊緣計算網關的功能。
本地數據存儲、定時採集上報、遠程查詢實時數據、支持視納滑頻傳輸、支持視頻數據疊加、支持圖片抓拍功能(定製)、支持外接LED屏、可自定義顯示內容、、內置大容量數據存儲空間、1G Flash內存、支持外接TF卡、支持遠程管理、支持遠程程序升級。
支持用戶二次開發,使用更安全應用更靈活
採用Arm架構高端處理器;標准Linux系統,集成Python開發環境和C語言開發環境,提供標准API介面及開發指導,為用戶的二次應用開發提供穩定快捷的平台,用戶可輕松調用系統各種介面及資源,打造差異化核心競爭力。
設備遠程管理,節省人力物力
計訊物聯TG462邊緣計算網關支持遠程診斷、升級,故障自恢復;設備遠程管理、維護,降低運維成本,提升效率。遠程設置網關:可遠程設置網關所有參數,操作方式、步驟與本地配置方式一樣。遠程添加設備:添加感測器、控制器等物聯網終端。遠程設置網口設備:遠程設置網關連接的網坦嫌絡設備。
應用領域
廣泛適用於工業4.0、電力行業、智慧市政、智能交通、商業聯網等場景。
8. 開源庫分享--為物聯網(IoT)設計和優化的開源大數據
一個開源的專為物聯網、車聯網、工業互聯網、IT運維等設計和優化的大數據平台。除核心的快10倍以上的時序資料庫功能外,還提供緩存、數據訂閱、流式計算等功能,最大程度減少研發和運維的工作量
定義了創新的數據存儲結構,單核每秒就能處理至少2萬次請求,插入數百萬個數據點,讀出一千萬以上數據點,比現有通用資料庫快了十倍以上。
由於超強性能,計算資源不到通用大數據方案的1/5;通過列式存儲和先進的壓縮演算法,存儲空間不到通用資料庫的1/10。
將資料庫、消息隊列、緩存、流式計算等功能融合一起,應用無需再集成Kafka/Redis/HBase/Spark等軟體,大幅降低應用開發和維護成本。
無論是十年前還是一秒鍾前的數據,指定時間范圍即可查詢。數據可在時間軸上或多個設備上進行聚合。即席查詢可通過Shell/Python/R/Matlab隨時進行。
不用一行代碼,即可與Telegraf, Grafana, Matlab, R集成。後續還將支持MQTT, OPC, Hadoop,Spark等, BI工具也將無縫連接。
你知道哪些好用的開源的物聯網大數據處理方式,歡迎評論分享,共同探討學習
9. 利用python將docx文件轉為txt
背景:工作中需要將文件夾下的若干word文.docx轉換為對應txt文本格式
因此需要將docx中文本讀取出來,然後保存為txt格式即可
需要的python模廳伏塊為 python-docx : https://python-docx.readthedocs.io/en/latest/index.html, 導入模塊時候導入docx
(只能讀取.docx文件,不能讀取.doc文件)
注意,在PyPi里還有一個叫docx的庫,已經停止更新,不建議使用)
http://www.cnblogs.com/geek-arking/p/9300617.html
上面的方法只能讀取docx文件,如果讀取doc會報錯
結果報錯:docx.opc.exceptions.PackageNotFoundError: Package not found。還是無法識別doc
「改變拓展名並沒有改變其編碼方式,因此無法讀取文本內容,需將doc文件用word另存為docx後再用python-docx讀取其內容」
對於要轉換的doc文件,網上的資料都是使用win32,需要安裝 pypiwin32
https://www.cnblogs.com/AlgorithmDot/p/3386918.html
通過上面的方法,有時可以塵陸直接將doc轉換為txt文件,有時候會報錯。
這里我們可以考慮將doc文件直接轉換為docx然後再通過上面的方法讀取為txt,如果手動將doc修改為txt或者docx,打開文件會顯示亂碼,但是可以用其提供的SaveAs方法將.doc文檔利用手動的方式「另存為」.docx文檔,就能夠成功打開轉化後的.docx文檔,
doc.SaveAs(tmp +'.docx', 16)
其中16的含義如下:
利用win32com介面直接調用office API,好處是簡單、兼容性好,只要office能處理的,python都可以處理,處理出來的結果和office word裡面「另存為」一扮兄攜致。
下面是office 2007支持的全部文件格式對應表:
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
= 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
= 13
wdFormatXMLTemplate = 14
= 15
wdFormatXPS = 18
照著字面意思應該能對應到相應的文件格式。
1、新建或打開文件。這個比較簡單用docx的Document類,若指定路徑則是打開文檔;若沒有指定路徑則是新建文檔
2、保存文件。有打開,就有保存。用Document類的save方法,其中參數是保存的文件路徑,或者要保存的文件流。一般指定路徑即可。
doc.save(path_or_stream)
3、對象集合。python-docx包含了word文檔的相關對象集合。
4、插入段落。段落是word最基本的對象之一。
5、新增樣式。這個幫助文檔裡面說得不仔細,而且還是英文的。我手頭上的項目用到這個,就自己琢磨出怎麼使用,如下。
6、應用字元樣式。字元自然是在段落裡面的,可以採用下面方法給段落追加文字和設置字元樣式。
#插入一個空白段落
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
#這樣一個段落就應用了兩個字元樣式,中間「456」就沒應用樣式
printp.text#輸出結果是u'123456789' 也還是連續的
7、設置字體。當然可以不用通過設置樣式對某些字進行設置,也可以直接設置。
p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold =True#加粗
r.font.italic =True#傾斜 等等...
8、表格操作。表格也是經常用到的一種對象類型。
10. 如何形容python 的 openopc庫
About OpenOPC
OpenOPC for Python is a free, open source OPC (OLE for Process Control) toolkit designed for use with the popular Python programming language. The unique features that set it apart from the many commercially available OPC toolkits include...
Easy to use
Because the OpenOPC library implements a minimal number of Python functions which may be chained together in a variety of ways, the library is simple to learn and easy to remember. In its simplest form, you can read and write OPC items as easily as any variable in your Python program... print opc['Square Waves.Int4'] opc['Square Waves.Real8'] = 100.0 Cross platform support
OpenOPC works with both Windows and non-Windows platforms. It has been tested with Windows, Linux, and Mac OS X. Functional programming style
OpenOPC allows OPC calls to be chained together in an elegant, functional programming style. For example, you can read the values of all items matching a wildcard pattern using a single line of Python code! opc.read(opc.list('Square Waves.*')) Designed for dynamic languages
Most OPC toolkits today are designed for use with static system languages (such as C++ or C#), providing a close mapping to the underlying Win32 COM methods. OpenOPC discards this cumbersome model and instead attempts to take advantage of the dynamic language features provided by Python.
OpenOPC is also one of the very few OPC-DA toolkits available for any dynamic language, and future support is planned for Ruby. EXAMPLE: Minimal working program
import OpenOPC
opc = OpenOPC.client()
opc.connect('Matrikon.OPC.Simulation')
print opc['Square Waves.Real8']
opc.close()
This project utilizes the de facto OPC-DA (Win32 COM-based) instrial automation standard. If you are looking for an OPC XML-DA library for Python, then please visit the PyOPC project.
OpenOPC Gateway Service
The Gateway Service is an optional Windows service which handles all the Win32 COM/DCOM calls used by the OpenOPC library mole. This offers the following potential advantages:
Avoidance of DCOM security headaches and firewall issues when running the OPC client and OPC server on different nodes. The ability to write OPC client applications that can run on non-Windows platforms such as Linux, Unix, and Mac OS X. Installing the service
C:\OpenOPC\bin> OpenOPCService.exe -install
Installing service OpenOpcService
Service installed
Starting the service
C:\OpenOPC\bin> net start zzzOpenOpcService
Stopping the service
C:\OpenOPC\bin> net stop zzzOpenOpcService
NOTE: If you want to use the OpenOPC Gateway service from another machine as a client and are using OpenOPC 1.2 then you must set the environment variable in windows and restart the gateway service:
OPC_GATE_HOST=x.x.x.x