#!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.image import MIMEImage sender = 'XXXX@XXXX' receiver = 'XXXX@XXXX' subject = 'python email test' smtpserver = 'smtp.163.com' username = 'xXXX@XXXX' password = 'XXXXX' msgRoot = MIMEMultipart('related') msgRoot['Subject'] = 'test message' msgText = MIMEText('Some HTML text and an image.
good!','html','utf-8') msgRoot.attach(msgText) fp = open('/home/cheng/Desktop/1.png', 'rb') msgImage = MIMEImage(fp.read()) fp.close() msgImage.add_header('Content-ID', '') msgRoot.attach(msgImage) smtp = smtplib.SMTP('smtp.gmail.com', 587) smtp.ehlo() smtp.starttls() # smtp.connect('smtp.163.com') smtp.login(username, password) smtp.sendmail(sender, receiver, msgRoot.as_string()) smtp.quit()
Raspberry pi
Tuesday, August 4, 2015
python Gmail嵌入HTML圖片
Thursday, July 16, 2015
Raspberry pi 使用兩個webcam
因為為要試一些 OpenCV 的東西,所以,就去弄了二台 Webcam 來用而我選用mjpg-streamer 這一套軟體來擷取 WebCam 畫面和提供網路串流,用 mjpg-streamer 來播送二台 Webcam 的方法,說破了,就是一次起二個使用不同埠號 (Port) 的 mjpg-streamer 伺服器哩 ! webcam 分別是 /dev/video0 和 /dev/video1 為例,然後,分別使用 8001 和 8002 埠來當 Web Server 的話,就在 Raspberry Pi 上開二個終端機 (Termianl) 並切換到 mjpg-stream 的安裝資料夾後、分別執行下面這二行指令。
sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -r QSIF -f 15" -o "./ou
tput_http.so -w ./www -p 8001"
sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -r QSIF -f 15" -o "./ou
tput_http.so -w ./www -p 8002"
檢視webcam port
ls /dev/video*
參考資料:
http://www.arthurtoday.com/2014/05/raspberrypi-using-mjpgstreamer-monitoring-multiple-webcams.html
Tuesday, July 14, 2015
從MJPG獲得視頻並用opencv處理
https://github.com/jacksonliam/mjpg-streamer
登入你的pi,去到/usr/src目錄下創建一個MJPG目錄
從GitHub下載
為了編譯代碼,我們需要安裝一些庫的依賴關係
接下來,我們需要編譯MJPG
現在我們應設置為開始串流視頻。有很多選項可以設置。有關詳細信息,請訪問上面鏈接的頁面GitHub
如果誰想要進一步處理視頻,你可以創建一個文件rpi-stream.py及以下將腳本貼到它獲得視頻流使用OpenCV的顯示
參考資料:
http://petrkout.com/electronics/low-latency-0-4-s-video-streaming-from-raspberry-pi-mjpeg-streamer-opencv/
登入你的pi,去到/usr/src目錄下創建一個MJPG目錄
cd /usr/src sudo mkdir mjpg-streamer sudo chown `whoami`:users mjpg-streamer cd mjpg-streamer
從GitHub下載
git clone https://github.com/jacksonliam/mjpg-streamer.git
為了編譯代碼,我們需要安裝一些庫的依賴關係
sudo apt-get install libv4l-dev libjpeg8-dev imagemagick build-essential cmake subversion
接下來,我們需要編譯MJPG
cd mjpg-streamer-experimental make
現在我們應設置為開始串流視頻。有很多選項可以設置。有關詳細信息,請訪問上面鏈接的頁面GitHub
export LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so -x 640 -y 480 -fps 20 -ex night"
如果誰想要進一步處理視頻,你可以創建一個文件rpi-stream.py及以下將腳本貼到它獲得視頻流使用OpenCV的顯示
import cv2 import urllib import numpy as np stream=urllib.urlopen('http://192.168.0.193:8080/?action=stream') bytes='' while True: bytes+=stream.read(1024) a = bytes.find('\xff\xd8') b = bytes.find('\xff\xd9') if a!=-1 and b!=-1: jpg = bytes[a:b+2] bytes= bytes[b+2:] i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.CV_LOAD_IMAGE_COLOR) cv2.imshow('i',i) if cv2.waitKey(1) == 27: exit(0)
參考資料:
http://petrkout.com/electronics/low-latency-0-4-s-video-streaming-from-raspberry-pi-mjpeg-streamer-opencv/
Friday, July 10, 2015
Webcam 拍照與瀏覽器串流
RaspBerry Pi官方推出直接安裝在 Pi主機的攝影鏡頭,使用軟性排線插在主機板上,而非使用USB介面。考量Webcam的多用途性,我買了相容性比較高的 Logitech Webcam C310,畫質稍好,價格又不會太高。Webcam有兩個用法,一是拍照存檔成jpeg檔,另一個功能是拍攝成影片,前者安裝 fswebcam就可以達成,要作為監視器使用,則需安裝 motion 軟體。
安裝 fswebcam
拍照存成 test.jpg
檢查是否有驅動Webcam
安裝影像軟體 Motion
修改設定,安裝完成後,修改設定檔 motion.conf ,將DAEMON OFF改為ON,設定為自動啟動motion,Webcam_localhost ON改為 OFF,不從Raspberry Pi連線至Webcam
修改內容
修改內容
重新啟動 motion 服務
參考資料:
http://atceiling.blogspot.tw/2014/04/raspberry-pi-webcam.html http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=55906
安裝 fswebcam
sudo apt-get install fswebcam
拍照存成 test.jpg
fswebcam test.jpg
檢查是否有驅動Webcam
sudo lsusb
安裝影像軟體 Motion
sudo apt-get install motion
修改設定,安裝完成後,修改設定檔 motion.conf ,將DAEMON OFF改為ON,設定為自動啟動motion,Webcam_localhost ON改為 OFF,不從Raspberry Pi連線至Webcam
sudo vi /etc/motion/motion.conf
修改內容
daemon on webcam_localhost = off修改 /etc/default/motion 將 start_motion_daemon=no 改為 yes
sudo vi /etc/default/motion
修改內容
tart_motion_daemon=yes
重新啟動 motion 服務
sudo service motion start剛開始我使用 IE 連線時,會要我下載檔案,然後下載了2-3mb還是無法看到影像,在論壇上找了很久,有網友告知使用 Firefox 或 Safari 就可以看到影像畫面了。
參考資料:
http://atceiling.blogspot.tw/2014/04/raspberry-pi-webcam.html http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=55906
Wednesday, June 17, 2015
Linux系統可以透過SSH被遠端操作
安裝ssh
-
USER_IP=使用者IP
參考資料:
http://magiclen.org/linux-ssh/
-
sudo apt-get install ssh安裝完SSH套件後,一般來說會自動啟用,可以使用以下指令來檢查SSH的啟動狀況:
netstat -a | grep ssh在Linux下只要使用「ssh」指令即可透過SSH來連線到別台裝置。使用帳密登入,最簡單的方式如下:
ssh USER_NAME@USER_IPUSER_NAME=使用者名稱
USER_IP=使用者IP
參考資料:
http://magiclen.org/linux-ssh/
Sunday, May 31, 2015
JPG轉換成TIFF格式的OCR與的tesseract
首先安裝pip套件
myimage.tif => 產生出來的檔案
執行完之後會產生myimage.tif檔案 再來建立一個demo.py檔案來觀看辨識結果,內容如下:
https://www.youtube.com/watch?v=LRXS3mC0OKo
http://fosshelp.blogspot.tw/2013/04/how-to-convert-jpg-to-tiff-for-ocr-with.html
sudo apt-get install python-pip
透過pip下載PIL套件
sudo pip install PIL
如果不能執行
pip install PIL --allow-unverified PIL --allow-all-external
接下來安裝 tesseract-ocr 套件
sudo apt-get install tesseract-ocr
安裝PyTesser
wget https://pytesser.googlecode.com/files/pytesser_v0.0.1.zip
將檔案解壓縮
unzip pytesser_v0.0.1.zip -d pytesser
cd pytesser
convert fonts_test.png -auto-level -compress none myimage.tif
如果不能執行
sudo apt-get install imagemagick
fonts_test.png => 輸入辨識圖片myimage.tif => 產生出來的檔案
執行完之後會產生myimage.tif檔案 再來建立一個demo.py檔案來觀看辨識結果,內容如下:
from PIL import Image
from pytesser import *
image_file = 'myimage.tif'
im = Image.open(image_file)
text = image_to_string(im)
text = image_file_to_string(image_file)
text = image_file_to_string(image_file, graceful_errors=True)
print "=====output=======\n"
print text
檔案請自行跟改檔名~
執行demo.py檔案(執行時間依電腦硬體而定)
python demo.py
參考資料:https://www.youtube.com/watch?v=LRXS3mC0OKo
http://fosshelp.blogspot.tw/2013/04/how-to-convert-jpg-to-tiff-for-ocr-with.html
Saturday, May 30, 2015
Rasberry pi install opencv
這裡介紹如何在 Raspberry Pi 上面安裝 OpenCV 函式庫,安裝方式可選擇使用 apt 或是自行編譯安裝。本章選用apt安裝。
安裝編譯 OpenCV 所需要的套件:
直接使用 Git 下載:
進入 OpenCV 的原始碼目錄,建立一個編譯用的子目錄
接著會出現所有可以調整的選項,您可以依照自己的需求來修改。
修改完後,按下「c」設定新的選項,然後再按下「g」即可產生編譯用的設定檔案。
STEP5 進行編譯:
http://blogger.gtwang.org/2015/01/raspberry-pi-install-opencv.html
使用 Apt 安裝 OpenCV
STEP1
如果要在 Raspberry Pi 中安裝與使用 OpenCV,最方便的方式就是使用 apt 來安裝:sudo apt-get install libopencv-dev
STEP2 安裝編譯 OpenCV 所需要的套件:
sudo apt-get install build-essential cmake cmake-curses-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools libeigen3-dev
需要的套件很多,這是另外一部分:
sudo apt-get install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev
STEP3直接使用 Git 下載:
git clone https://github.com/Itseez/opencv.git
STEP4進入 OpenCV 的原始碼目錄,建立一個編譯用的子目錄
cd opencv
mkdir release
cd release
使用 ccmake 建立 CMake 設定檔:
ccmake ../
由於我們建立的是一個全新的編譯設定,所以會顯示 Empty Cache,直接按下「c」繼續。接著會出現所有可以調整的選項,您可以依照自己的需求來修改。
修改完後,按下「c」設定新的選項,然後再按下「g」即可產生編譯用的設定檔案。
STEP5 進行編譯:
make
sudo make install
由於 Raspberry Pi 的處理速度很慢,所以編譯的過程會需要很久的時間,大該需要十個小時左右。在編譯的過程會需要大約 2G 的空間,所以也要注意一下 Raspberry Pi 的記憶卡所剩餘的空間是否充足。
檢查方式:
df -h
檢查opencv版本:
pkg-config --modversion opencvOpenCV Hello World 安裝好 OpenCV 函式庫之後,接著寫一個小的程式測試一下:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main( int argc, char** argv ) {
if( argc != 2) {
cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
return -1;
}
Mat image;
// Read the file
image = imread(argv[1], CV_LOAD_IMAGE_COLOR);
if(! image.data ) { // Check for invalid input
cout << "Could not open or find the image" << std::endl ;
return -1;
}
// Create a window for display.
namedWindow( "Display window", WINDOW_AUTOSIZE );
// Show our image inside it.
imshow( "Display window", image );
// Wait for a keystroke in the window
waitKey(0);
return 0;
}
我將這個顯示圖片的程式碼儲存為 display_image.cpp,然後使用 g++ 編譯:
g++ -lopencv_highgui -lopencv_core -o display_image display_image.cpp
編譯時要加上連結用的函式庫 -lopencv_highgui -lopencv_core,如果不清楚該加哪些,可以直接使用 pkg-config 把所有的 OpenCV 函式庫都放進去:
g++ `pkg-config --libs opencv` -o display_image display_image.cpp
如果可以正常編譯出來 display_image 這個執行檔,就表示 OpenCV 已經安裝成功了,這個測試程式可以顯示指定的圖檔:
./display_image xxx.jpg
參考資料:
http://blogger.gtwang.org/2015/01/raspberry-pi-install-opencv.html
Subscribe to:
Posts (Atom)