2017年10月13日 星期五

在Visual Studio內嵌美人時鐘 - 美人時計IDE

puni_ide_4

今天在找Visual Studio上的theme時,發現到一個有趣的東西美人時計 IDE,因為介紹上沒看到圖,不是很能了解具體呈現會是怎樣,所以我抱著踩雷的心情試看看,沒想到裝了之後這玩意真心不錯XD

[Python] Using deep learning model in OpenCV | 在OpenCV中使用深度學習模型

space_shuttle

OpenCV 3.3 included dnn module in the main repository, now we can use popular framework like Caffe, TensorFlow in OpenCV via dnn module.
OpenCV 3.3將dnn模組包入了主庫,現在我們可以在OpenCV中藉由dnn模組使用像是Caffe,TensorFlow這些熱門框架。

This post we will follow this dnn sample to test it (with some modify), because OpenCvSharp didn't support OpenCV 3.3 yet, so we will using python to do it.
這篇文章我們將照著這篇dnn範例來測試(有做一點修改),因為OpenCvSharp還沒支援OpenCV 3.3,所以我們將使用python來做這測試。

2017年10月3日 星期二

[C#] OpenCvSharp Detect Object in Video | OpenCvSharp 在影片中偵測物體

Last time we can detect object in image , now we can using same way to detect object in video , all we need just change the data source then do a little change.
上次我們做到了從圖片中偵測物體,現在我們可以用同個方式來從影片中偵測物體,只要改變資料來源跟做一點小修改。

2017年10月2日 星期一

2017 台灣網路銀行速度評比

cobank.tcb-bank.com.tw
日前因為工作需要開了合作金庫的帳戶,開戶過程蠻有問題的就算了,沒想到回家後使用網銀也讓我怨聲載道,從來沒看過有一家銀行的網銀可以慢到timeout的,於是我就想來看看到底合庫的網銀是不是最爛的,這篇文章因此而生。

首先參考wiki上的台灣銀行列表,將其中所列的37間商業銀行,一間間的找到其個人網銀的首頁或登入頁,然後丟到Pingdom Website Speed Test去測試速度,測試來源一律選San Jose, California, USA,在一番苦功之後,終於把每間銀行都搞定,底下就是我整理後的結果。

2017年9月28日 星期四

[C#] OpenCvSharp Detect Object in Image by Contour | OpenCvSharp 使用輪廓偵測圖片中的物體

snip_20170928110929

This time I will try to detect objects from image by OpenCvSharp, let me introduce the flow first.
這次我要用OpenCvSharp嘗試偵測圖片中的物體,讓我先介紹流程。

  1. Load image (I load image as gray scale here). | 讀取圖片(我直接讀成灰階)
  2. Blur the image (I choose Gaussian Blur). | 模糊化圖片(我用高斯模糊)
  3. Get edge (use canny) | 取得邊緣(使用Canny)
  4. Find the Contour. | 找出輪廓
  5. Get right contour and draw on image. | 取得正確的輪廓並畫到圖片上上

2017年9月19日 星期二

[C#] OpenCvSharp Draw Histogram | OpenCvSharp 畫直方圖

最近我使用OpenCv做研究,發現C#在這領域蠻缺乏資源的,在找怎麼畫出直方圖時花了一些時間,所以現在來分享一下結果。
Recently I was using OpenCV to do research, found C# in this field was quite lack of resources, looking for how to draw the histogram took me some time, so now to share the results.

首先,使用nuget安裝OpenCvSharp,目前C#比較好用的OpenCv Wrapper。
First, use nuget to install OpenCvSharp, the current better OpenCv Wrapper for C#.

HistExample1


然後參考下列程式碼
Then refer to the following code

2017年9月7日 星期四

Merge DLL into EXE on WPF via LibZ | 使用LibZ在WPF上將DLL合併至EXE內

In winform, you can use ILMerge merge DLLs into EXE, but it can't work on WPF, so we need find another way to do it. Lot of people recommend this post "Combining multiple assemblies into a single EXE for a WPF application", but it didn't work on me, luckily I found another way to do it.
在winform上,你可以用ILMerge合併DLLs到EXE裡,但是在WPF上沒辦法辦到,所以我們需要找另外的方法來達成。很多人推薦這篇" Combining multiple assemblies into a single EXE for a WPF application "的方式,但是在我的情況不適用,還好我找到另外的方式。


Using LibZ, we can use commend line doing merge like using ILMerge, you can even use LibZ as library to control it in code for advanced use. For me, Libz can merge DLLs into EXE on WPF, it saved my day.
使用LibZ,我們可以跟ILMerge一樣用指令列來做合併,在進階的狀況,甚至可以在程式內呼叫LibZ library來使用他。對我來說,LibZ可以在WPF上將DLLs合併至EXE內,這省了我很多時間。


LibZ github nuget


To use LibZ is easy, the fast way for me is use NuGet Package Manager Console (in Visual Studio -> Tools -> NuGet Package Manager -> Package Manager Console)
使用LibZ很簡單,最快的方式就是使用NuGet Package Manager Console (在Visual Studio中-> Tools -> NuGet Package Manager -> Package Manager Console)


Open NuGet Package Manager Console, type in following commend to install
開啟NuGet Package Manager Console,輸入下列指令安裝
PM>Install-Package LibZ.Tool -Version 1.2.0
libz1


After LibZ.Tool package installed, goto the dictionary that having you want to merge's file, using following commend to merge DLLs into EXE.
LibZ.Tool安裝完後,到有你要合併的檔案之目錄,使用下列指令來將DLLs合併至EXE.

PM>libz inject-dll --assembly .\YOUREXE.exe --include .\YOURDLL.dll
libz2


Then it's done.
然後就完成啦。


You can read LibZ document to get more help.
你可以閱讀LibZ的文件來取得更多幫助。

2017年7月27日 星期四

冥頑不靈的舊時代思維

最近這幾天,北市府與Youtuber合作宣傳世大運上了好幾個新聞,像是這個 宣傳世大運 柯P聯手網紅拍片,其實這也不是創舉,政府單位在之前就已經有找國內外youtuber合作的記錄了。而跟網路紅人、Youtuber業配是一個很聰明又實惠的作法,只要找對人,其穿透力、到達率絕對比花大錢買電視、報紙廣告來的有效,看了一下這次合作背後的推手是貝殼放大的創辦人,想想也就不意外了,若是舊時代的思維肯定會覺得這些都是邪魔歪道....沒想到在FB上還真的看到這種人。

前柯辦發言人,前悠遊卡公司董事長特助 - 林筱淇在7/26時發了一篇文評論了與Youtuber合作這件事,在貼文章內容之前,先來說說舊時代思維有哪些特點:
  1. 接受不了新觀念、新事物。
  2. 看不慣的東西都是沒用的垃圾。
  3. 覺得用老招就可以吃遍天下。
讓我們看看舊時代思維是怎麼呈現的。
Joke4

2017年4月25日 星期二

[C#] Roman numerals converter - 羅馬數字轉換

Two little function can translate Roman Numerals(String) to Number(Int) and trans back.
兩個小function可以將羅馬數字(字串)轉成數字(整數)再轉回

//1990=>MCMXC
public static string IntToRoman(int num)
{
 String[] m = { "", "M", "MM", "MMM" };
 String[] c = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
 String[] x = { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
 String[] i = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
 return m[num / 1000] + c[(num % 1000) / 100] + x[(num % 100) / 10] + i[num % 10];
}

//MCMXC=>1990
public static int RomanToInt(string s)
{
 Dictionary d1 = new Dictionary { { 'I', 1 }, { 'V', 5 }, { 'X', 10 }, { 'L', 50 }, { 'C', 100 }, { 'D', 500 }, { 'M', 1000 } };
 Dictionary d2 = new Dictionary { { "IV", 4 }, { "IX", 9 }, { "XL", 40 }, { "XC", 90 }, { "CD", 400 }, { "CM", 900 } };
 int num = 0;
 foreach (var d in d2)
 {
  if (s.Contains(d.Key))
  {
   num += d.Value;
   s = s.Replace(d.Key, "");
  }
 }
 foreach (var d in d1)
 {
  var c = s.Count(x => x == d.Key);
  if (c > 0)
  {
   num += d.Value * c;
  }
 }
 return num;
}

2017年4月24日 星期一

空襲來時要躲哪 ?

今天北韓開戰的機會不小,前幾天北韓太陽節搞得大家人心惶惶,雖然最終以北韓飛彈試射失敗告終,但還是讓東亞國家都緊張了一個周末,戰爭的陰霾也還未散去。雖然北韓開戰影響台灣的機會很小,但天底下不怕一萬只怕萬一,就算北韓影響不到台灣,還有幾千顆飛彈對著台灣啊。

說到空襲,在和平了許久的台灣,最多人聯想到的應該是伍佰的【空襲警報】,至於防空演習,這年代除了參與演習的單位,其他人只會覺得一小時不能上街有點麻煩吧。但是你有想過,若今天空襲警報響了,幾分鐘後你查了一下,發現這不是演習,這時候你要躲到哪裡去嗎 ?

電影中打仗有戰壕躲,伍佰【空襲警報】裡說種田的都躲樹下,學生時代遇到空襲演練,老師說要躲在課桌底下,而現在呢 ? 老實說我還真的不曉得台灣有甚麼規定要怎麼躲,按照我的知識,遇到空襲若在市區,應該要就近找堅固的建築物做掩蔽,祈禱炸彈別炸到頭上把你埋了,但這只是我的想法,理論上台灣辦過那麼多場萬安演習,應該會有清楚的指示才對.....

2017年4月13日 星期四

[實測] 捷運PM2.5真的比較高嗎 ?

事情是這麼來的,在FB PM2.5 開放資料社群上看到了這篇地鐵PM2.5飆高不只國外 北捷實測也相符,文中引用英國研究,並在台北捷運測得車站密閉空間的PM2.5數值較室外空間高出不少,由於文章內沒有當天的空汙資料可以參考,所以也不太曉得背景值大約是怎樣,只能用室外空間測出來的數據來推測應該是個空氣很好的天氣。

看了這樣的文章,我剛好有帶之前買的空汙偵測小工具,所以就在搭捷運時測試了一下,看看結果會如何。


Screenshot_20170412-192640
這是我開始測試前截的圖,看的出來台北市空氣蠻糟的,這個糟糕的空氣持續到半夜,截圖的時候是七點半,我九點多有再看一次,感覺上有更糟一點,大致上是沒有大風吹過空氣變好的情況在測試時發生。

2017年4月10日 星期一

自製求生盒 - DIY SOS Box

IMG_3481

求生盒(SOS box)這東西算是一個比較奇妙的東西,不像避難背包那麼出名,但又因為體積關係,不少廠商都有出套裝產品可供選擇,網路上搜尋SOS Box可以找到很多產品能參考,而不少對於此方面有經驗的人,都傾向於自己組求生盒,來對應自身會(或是預期)遭遇的狀況。

自組求生盒的第一步,就是找到適合的容器,一般而言都是找個大小適中,方便攜帶的堅固容器,如果能防水最好,比較常見的尺寸從海底雞罐頭這種大小,到便當盒大小都有人用。個人建議是別太小,至少要能裝進求生毯,也別大到放不進口袋,如果工作褲口袋或是外套口袋裝進去會妨礙行動,就太大了。

至於內容物,一般來說在都市準備的核心都是以刀、火、燈為基礎,古典一點求生盒會有針線、釣具、鏈鋸等等,比較常見的還有哨子、反射鏡、指南針,基本上是針對自己所需,還有能放進多少東西進盒子來思考。

2017年3月3日 星期五

Dcard 新聞誰最多

台灣網友皆知,台灣的新聞媒體很大一部分的內容來源就是從網路上抄,而抄的來源又決定了新聞的內容品質,在PTT上常常有很多網友評論那些Dcard網站內容為「低__卡幻想文」,抄過去變成新聞自然也是大批一頓,看到很多人在批,我就想來看看哪家新聞的Dcard新聞最多。

由於懶得寫程式爬,所以直接用google搜尋代勞,也許不完全精準但是要看出Dcard程度應該還是沒問題的,方式是在www.google.com.tw搜尋「site:網站 dcard」,舉例而言,以蘋果日報來說,就是搜尋
site:appledaily.com.tw dcard


簡單的搜尋結果如下,我只有找google搜尋「新聞」前五頁的台灣有自產新聞的媒體,沒想到那麼少



排序一下名次,

Dcard 新聞誰最多 - 2017/3/3

#NameCount
1 NOWnews 182,000
2 聯合新聞網 26,100
3 東森新聞雲 16,100
4 TVBS新聞網 4,930
5 蘋果日報 3,840
6 自由時報 1,040
7 中時電子報 745


只看數字不是很直觀,所以轉成圓餅圖,可以看到第一名的NOWnews低卡文大勝其他新聞啊



周末前的小分析,感謝大家。

2017年2月2日 星期四

春節期間該買樂透嗎 ?

lottery

過年前分析了一下前三年樂透彩的數據,想看看過年的時候要不要買樂透拚退休,沒想到分析出來的結果蠻有意思的,而過完年後,看起來只有這三年的分析也沒讓我失望,目前為止還算是準的。

其實看上圖就知道分析的結果了,但我還是歸納一下,從過去三年的資料中得知:

  • 威力彩在春節前後一個月不會開頭獎
  • 大樂透在春節期間會開頭獎

所以若想中頭獎的話,春節期間買大樂透是比較有機會的,威力彩大概過完元宵後再考慮拚頭獎XD

下面有過去三年的資料,紅色是大年初一,橘色是頭獎累積,藍色是頭獎金額(藍色比橘色短表示頭獎不只一個)

2017年1月11日 星期三

FEMA Markings | FEMA 標記說明

fema mark

如果有在看國外的新聞,或是一些電影,你可能對牆上的噴漆有點眼熟,這不是胡亂的塗鴉,而是一種都市搜尋與搜救標記(Urban Search and Rescue Markings),上下的標記都是,不過我不太確定上面紅色標記是按照甚麼規範噴的,而下面橘色標記則是FEMA Markings。

FEMA是Federal Emergency Management Agency的簡寫,就是美國的聯邦緊急事務管理署,主要是負責自然災害的應對與處理。而這套標記在美國Katrina風災時廣泛使用而被大眾所知(可以參考這篇"Katrina + 5: An X-Code Exhibition"),也有人稱為Katrina crosses、Katrina X ,有些人在使用上會簡稱為search codes,而在FEMA的RESCUE FIELD OPERATIONS GUIDE文件中則被命名為 FEMA Search Assessment Marking (FEMA搜索評估標記),順帶一提,這份文件寫了很多有用的資訊,有興趣的人可以研究一下。