發表文章

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

圖片
一個應用程式(軟體) 不管是  互動拍照 也好、 投影也好、車牌偵測... 舞台演唱會後方電視牆的互動應用程序、 粒子特效、3D或2D遊戲  等等 開發者通常都需要在一開始做規劃 ㄟ  假設我今天要寫 跟影像有關 可能需要偵測、可能需要提取前景、可能需要偵測圓形 之類的 我有  emgucv 、AForge.Net、 opencv 等等可以用 但是 假設我今天要做的應用程序是需要有視窗介面的~~ emgucv 跟 C# windows form 媒合性 就很高 而且直接在 visual studio 做開發 opencv 我可能還需要依賴 Qt 之類等等  framework 假設我今天是要寫一個 演唱會電視牆互動粒子特效 可能就會挑   openframeworks  、 processing 、kinect 來寫互動 Achitecture  --->全稱 :  Software Architecture   軟體架構 Achitecture   由好多 framework 組成 軟體架構(Software Architecture)是一種軟體在開發前的設計藍圖, 用來告訴軟體的結構,功能,介面,用法,與其他系統的構連以及資料交換等等規範, 但它並沒有叫你要用什麼方式實作, 因此軟體架構通常會產生文件,圖樣,原型以及規格等, 就是沒有可用的程式碼,因為那不是軟體架構應該有的東西, 就像蓋房子時是給你藍圖,而不是一幢蓋好的房子。 軟體框架(Framework):是一個已經成形的方法,而且有程式碼實體 (例如鋼構工法也是要有鋼材才能做),並且會告訴你要如何使用它 (即 Framework Documentation,MSDN Library 即為一最佳例子)

深入淺出C#第三版_第一章_Build something cool,fast!_外星人統治地球的遊戲製作_內次菱形異次元門閘_part1

圖片
Want to build great apps really fast? 想很快地創造一個很棒的應用程式嗎? With C# , you've got a great programming language and a valuable tool at your fingertips. With the  Visual Studio IDE, you'll never have to spend hours writing obscure code to get a button working again . Even better, you'll be able to build really cool software, rather than remembering which bit of code was for the name of a button , and which one was for its label .Sound appealing ? Turn the page , and let's get programming. 在C#中,你有一個偉大的編程語言和一個在你指尖上的寶貴工具。 隨著Visual Studio IDE中,你永遠不會有花時間寫晦澀的代碼來獲得一個按鈕再次合作。 更妙的是,你可以建構很酷的軟件,而不是記住哪個代碼位是按鈕的名稱, 其中之一是它的標籤。令人動聽嗎?翻開新的一頁,讓我們開始編程。 第一章  第8頁 開始 主要是介紹遊戲的故事背景和設計 地球上的人類被外星人視為美味的食物 所以被吸上去吃掉了!! tasty human  美味的人類 Aliens are beaming up humans.  Not good! beam   n.光線,電波 vt.   用……照射;將……對準[O]       發出 (定向)播送,發送[O Beam me up把我傳(到飛船)上來。 Aliens attack! 外星人攻擊 Well, there’s a surprise: vicious aliens have launched a full...

深入淺出C#第三版 / Head First C#_Third Edition_序翻譯

圖片
What will you learn from this book? 你將會從這本書當中學到捨麼? Head First C# is a complete learning experience for programming with C# , XAML ., the .Net Framework, and Visual Studio. Built for your brain. this book keeps you engaged from the first chapter, where you will build a fully functional video game. After that , you'll learn about classes and object-oriented programming, draw graphics and animation, query your data with LINQ , and serialize it to files. And you'll do it all by building games , solving puzzles , and doing hands-on projects. By the time you're done you'll be a solid C# programmer, and you'll have a great time along the way! 深入淺出C#是在.Net框架和Visual Studio中用C#、XAML編程的完整學習經驗。 專為你的大腦打造。 這本書讓你從第一章,在那裡你將建立一個全功能的電子遊戲經營。 在這之後,您將了解類和物件導向編程,繪製圖形和動畫,使用LINQ查詢數據, 並將其序列化到文件。 你會通過構建遊戲,解決難題,做動手的項目做到這一切。到時候你就大功告成了,你會是一個堅實的C#程序員,你就會有前進的道路上一個偉大的時刻! Why does this book look so different? 為何這本書看起來與眾不同? We think your time is too valuable to spend strugglin...

Emgucv_Motion_Detection_MotionHistory_Human_Activity_in_video

圖片
This topic introduces you to the function  MotionHistory of emgucv . The motion history image (MHI) is a static image template helps in understanding the motion location and path as it progresses. In MHI, the temporal motion information is collapsed into a single image template where intensity is a function of recency of motion. The MHI pixel intensity is a function of the motion history at that location, where brighter values correspond to a more recent motion. Using MHI, moving parts of a video sequence can be engraved with a single image, from where one can predict the motion flow as well as the moving parts of the video action. Video  Effect  Algorithm1 ========================================================= for each time t   Bt := absolute_difference(It, It-1) > threshold end for ========================================================= Algorithm2 ========================================================= for ea...

在Qt5.2上配置opencv2.9

圖片
我們的作業環境是在win10 使用的IDE為  Qt Creator (Community)  /  Qt 5.2 使用opencv249版   也可用2411、或者opencv3 動機是  覺得  Qt   和opencv的媒合性很高 是很有潛力的技術 而且可以寫 視窗介面   是 還不錯的  一個  C++ 框架 成品效果 最主要是用來和影像處理來做結合 讓使用者更能體會到  user friendly XDD所以可以學習一下 還沒下載Qt的 附上連結給大家 https://download.qt.io/archive/qt/5.2/5.2.0/ 5.2只支援到 Microsoft Visual Studio 2012 如果要到2013 就升到5.3喔 最新5.7有支援   vs2015 不過經過測試發現最穩定的是5.2這版 【第一階段 - 新增Qt專案】 首先開啟 Qt 之後 New   一個 新的  project Application -->  Qt Console Application 【第二 階段 - 配置opencv】 到 .pro 區塊 去配置opencv 【配置】 #------------------------------------------------- # # Project created by QtCreator 2016-07-25T03:23:43 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = Qt_opencv_webcam TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADE...

C#_WindowsForm_跳頁x單向傳遞資料寫法_雙向傳遞資料筆記

圖片
平時在視窗程設上同學經常會遇到一個困難 就是 視窗 跳至下一頁做該視窗頁面 顯示之後 如何再返回原視窗(第一視窗) 首先 視窗我們先創建兩個 Form1的 設計 Form2的 設計 Form1.cs區塊 Form2.cs區塊 當你調用ShowDialog的一個形式,它會運行直到窗體的DialogResult屬性設置為None以外的東西,或者直到None以外的DialogResult屬性的子按鈕被點擊 代表視窗2狀態結束了並回傳結果 之後就會再回去 做 this.show() 顯示  Form1喔!!! 效果 學長我們要怎麼做傳數值呢??? 我知道你會問所以先準備好了  textBox 了  還有在 Form2 新增好了Label了 在 Form1 的 textbox1 隨便輸入資料 按下 "跳下一頁" (form1_btnNext) 之後會將 Form1 裡的資料顯示在 Form2 的 Label上 單向傳遞資料 在新增 Form2 物件時直接傳送數值給建構式 將Form2 newForm2 = new Form2(); 移至 button事件中 緊接著來到Form2   ㄟ 怎麼多出了一串程式碼!!!! 這就是visual 剛剛幫你自動生成的喔~~~ 改一下預設產生的code 這裡會接收你在Form1輸入的字串資料,之後當按下  button之後 開啟Form2並在 form2_label  做顯示 有時候命名要命名好  幫助觀念喔!!!! 這樣就能將 Form1 的資料傳至 Form2 了 效果影片 可是這寫法只適合一對一傳值 不太適合多資料傳送喔!!!! 有時我們可能會必須處理大量資料/多筆資料  互傳的時候 就不會這樣寫了  因為建構式會很攏長且不彈性 雙向傳遞資料 用函數來傳遞參考 在去Form2 效果呈現

C++廚房2_建構子vs解構子

圖片
建構子 (constructor) : 是產失物件時,自動被呼叫出的特殊函數。 建構子必為public,若省略不寫或者寫private,當你在生成物件時就會造成編譯錯誤!!!! 建構子的宣告 及定義 把 建構子 以及 類別名稱  指定為 相同名字!!!! 建構子之定義 無傳回值 更  不用指定void型 解構子 (destructor): 當物件任務結束時,會自動被呼叫出的特殊成員函數。 解構子必為public,若省略不寫或者寫private,就會造成編譯錯誤!!!! 解構子的宣告及定義 把 解 構子  以及  類別名稱   指定為 相同名字!!!! 解構子之定義也  無傳回值  更  不用指定void型 而且只能在類別中定義一個!!!!! 本次學習code #include<iostream> using namespace std; class orangeBox { public: /*成員函數*/ void Add(int addorange);//橘子不夠需要添加 void Del(int delorange);//橘子爛了要取出 void Empty();//橘子箱空了 int GetTotal()//用成員函數GetTotal()求出一箱橘子總共多少顆 { return total; // 成員函數本身的定義 } orangeBox(); //建構子的宣告 ~orangeBox(); //解構子的宣告 protected: private: /*成員變數*/ int total; }; //建構子定義 orangeBox::orangeBox() //建構子無傳回值,也不指定void型 { total = 0; //初始化成員變數 } //解構子定義 orangeBox::~orangeBox() // 解...