2016年10月26日 星期三

[linux] memo一下 wget用法

wget --user=NAME --password='PASSWORD' ftp://url/path/file.name
wget --user=NAME --password='PASSWORD' http://url/path/file.name

常用的中華電信測速:
wget --user=ftp --password='ftp' ftp://ftp.speed.hinet.net/test_010m.zip

有這些檔案可以測速
 /test_001m.zip1MB /test_003m.zip3MB /test_005m.zip5MB /test_010m.zip10MB /test_020m.zip20MB /test_040m.zip40MB /test_100m.zip100MB /test_200m.zip200MB /test_400m.zip400MB


測試上傳
 wput test_010m.zip ftp://ftp:ftp@ftp.speed.hinet.net/uploads

當然在這之前要先安裝wput
apt-get install wput


2016年10月8日 星期六

[Python] opencv basic (未完)

[OpenCV Computer Vision with Python]

1. 8-bit grayscale image 為 2D array; 24-bit BGR image 為 3D array
  image[0, 0]的第一個index為y軸向,也就是row,0為最上面,第二個index為x軸向,column,0為最左邊
  對gray image來說image[0,0]取得其灰階值
  對 24-bit BGR image來說image[0,0]將取得左上角的點,若是藍色點,則會取得[255,0,0]的值

2.
...

== 一些想法 ==
1. 看到p28寫到可以抓mouse, keyboard的event,想到最近在學wxPython,不知道可不可以合著用,效能好不好…
還未試過,有找到文章:
http://www.cnblogs.com/lulu147/p/4901626.html
https://plus.google.com/+JoshuaBenuck/posts/1ncnLFhyvKx

2. 測試camera時發現抓回來的fps很小->很慢的意思,有人說放到thread會比較好
http://www.pyimagesearch.com/2015/12/21/increasing-webcam-fps-with-python-and-opencv/
-->可以由本來的59fps增加到143fps ?
http://www.pyimagesearch.com/2015/12/28/increasing-raspberry-pi-fps-with-python-and-opencv/
--> 這一篇是rasp pi的,由14增加到51fps
只是我用pc上跑都沒有人家rasp pi快,怪的勒! 晚一點要應用時再來了解好了。

== 問題的處理 ==
1. 無法正常開啟mp4檔的問題
  把opencv的資料夾 "E:\workspace\python\opencv\opencv-2.4\build\x86\vc12\bin"加入我的path無法解決問題,最後是同這一篇的做法(另外這一篇也有提到差不多的做法,只是copy更多的檔案而已),把這資料夾中的"opencv_ffmpeg2413.dll"檔案copy到資料夾"C:\Python27"中就正常了,也不知為何…


== 不錯的參考 ==
1. 處理視頻(一): 輸入輸出
http://python.jobbole.com/85247/


2016年10月5日 星期三

[python] TCP socket連線時,指定要使用網卡IP

最近在Linux的設備上遇到有二個網路介面的情形,一個是Ethernet,一個是3G
如果二個介面都可以上網,就會由系統自動選一條路走
但如果要自己選擇呢?
比如說
Ethernet為192.168.0.3
3G網路上101.138.125.192

這時要走3G就這樣做
s3 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s3.bind(("101.138.125.192", 0))
s3.connect(("www.google.com", 80))
s3.sendall("abcd")

要走ethernet就這樣做
s4 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s4.bind(("192.168.0.3", 0))
s4.connect(("www.google.com", 80))
s4.sendall("abcd")

若是依之前的寫法,沒有特別去bind,就會依目前routting的路去走,我的系統預設是走ethernet,因此如果是自己架的Server,就會看到是由Ethernet出來的ip
s5 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s5.connect(("www.google.com", 80))
s5.sendall("abcd")

另外,如果不知道目前eth0和3G的ppp0的IP的由,可以用ipconfig, ifconfig指令取得介面的IP資料,再來指令要bind的IP,就可以解決了