Time of Update: 2018-07-25
C#筆記9——基於TableLayoutPanel的多分屏、全屏程式 最近由於工作需要,需要設定一個多分屏視窗以便於多分屏播放視頻。 思考了一下,大致思路如下:用TableLayoutPanel來劃分多個地區,在每個地區中都放入一個PictureBox,用PictureBox來接收攝像機的資料流; 每次選擇不同的分屏時,根據數量n*n來設定TableLayoutPanel的行列數量,並向其中添加PictureBox。
Time of Update: 2018-07-25
1.基本概念 物件導向程式設計是利用對象來進行程式設計。一個對象表示現實世界中一個獨一無二的實體。例如,一名學生、一張桌子、一個圓等都可以看作對象。一個對象具有唯一的身份、狀態和行為。一個對象的狀態用資料域以及它們的當前值來表示。一個對象的行為由一組函數定義,對一個對象調用一個函數就是請求對象執行一個任務。
Time of Update: 2018-07-25
標準C++中提供的string類得功能也是非常強大的,一般都能滿足我們開發項目時使用。現將具體用法的一部分羅列如下,只起一個拋磚引玉的作用吧,好了,廢話少說,直接進入正題吧。 要想使用標準C++中string類,必須要包含 #include <string>// 注意是<string>,不是<string.h>,帶.h的是C語言中的標頭檔 using std::string; using std::wstring; 或 using
Time of Update: 2018-07-25
int Day(int year, int month, int day){ int i;int days = 0; int months[12] = {31,0,31,30,31,30,31,31,30,31,30,31}; //判斷某年是否是閏年,看它是否滿足一下2個條件之一(不可能同時滿足) if( (year % 400 == 0) || ( (year % 4 == 0) && ( year % 100 != 0) )
Time of Update: 2018-07-25
【什麼是遞迴】 遞迴即函數自身重複調用。 使用遞迴要注意的有兩點: 1)遞迴就是在過程或函數裡面調用自身; 2)在使用遞迴時,必須有一個明確的遞迴結束條件,稱為遞迴出口。 遞迴分為兩個階段: 1)遞推:把複雜的問題的求解推到比原問題簡單一些的問題的求解; 2)迴歸:當獲得最簡單的情況後,逐步返回,依次得到複雜的解。 【什麼是迭代】
Time of Update: 2018-07-25
相信很多從C/C++轉到Golang的朋友們都經常會對Go中的輸入控制感到頭疼。。。尤其是如果要在Go中類比C語言中的如下代碼會遇到不小困惑: char input[100];while (1) { if (scanf("%s", input) == EOF) { printf("輸入結束\n"); break; }} 上面這段代碼在控制台中輸入一個Ctrl+Z(EOF) 就可以終止輸入了:
Time of Update: 2018-07-25
#include <iostream>using namespace std;template<int N>class BitSet{public: BitSet() { set(); } void set() { for (int i = 0; i < Nm; i++) { vtr[i] = 0; } } void set(int n) {
Time of Update: 2018-07-25
引入內嵌函式的目的是為瞭解決程式中函數調用的效率問題,也是用內嵌函式取代帶參宏定義(函數傳參比宏更加方便易用) inline關鍵字用來定義一個類的內嵌函式。 在類體中和類體外定義成員函數是有區別的:在類體中定義的成員函數為內聯(inline)函數,在類體外定義的不是。如果你既希望將函數定義在類體外部,又希望它是內嵌函式,那麼可以在聲明函數時加 inline
Time of Update: 2018-07-25
1建立BackgroundWorker控制項 建立Windows表單應用程式,在空白Form1下添加BackgroundWorker控制項,從工具箱中拖動即可。 我們需要使用BackgroundWorker的幾個事件: DoWork事件:在調用RunWorkerAsync函數時觸發事件,實現背景程式調用。
Time of Update: 2018-07-25
#include <iostream>using namespace std;#define Default -1struct Node{ int data; Node *next; Node *other;//這是複雜鏈表的額外的一個指標,指向一個指定位置的節點。 Node(int d = int()) :data(d), next(NULL), other(NULL){}};class ContexList{public: ContexList()
Time of Update: 2018-07-25
C/C++ 宏命令的神奇用法。 先看下面三條語句: #define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x 1. ## 串連操作符 ##表示串連(token pasting, or token concatenation,merge two tokens into one while expanding macros)。x##y表示什麼。表示x串連y,舉例說: int n = Conn(123,456
Time of Update: 2018-07-25
近期使用研華PCI-1750IO卡,總結使用注意事項: 1.研華IO卡驅動分兩種,第一種DAQNavi,第二種DAQ,如C#調用需安裝第一種; 2.DAQNavi需安裝兩個軟體DAQNavi_PCI1750_3.2.6.0.exe (20151008)和DAQNavi_SDK_3.2.7.0.zip (20160310) 3.C#對象建立instantDiCtrl.SelectedDevice = new DeviceInformation("PCI-1750,BID#0&
Time of Update: 2018-07-25
今天複習一下struct,順便挖掘一下以前沒注意的小細節: 基本定義:結構體,通俗講就像是打包封裝,把一些有共同特徵(比如同屬於某一類事物的屬性,往往是某種業務相關屬性的彙總)的變數封裝在內部,通過一定方法訪問修改內部變數。 結構體定義: 第一種:只有結構體定義 struct stuff{ char job[20]; int age; float height;};
Time of Update: 2018-07-25
轉自:http://www.cnblogs.com/linfenghp/p/6618580.html C#中有三個進階參數,分別是out,ref,params. out,用於在方法中返回多餘值。(可以理解為讓一個方法返回不同的類型值),我們通過例子來理解例子的功能:用一個方法,判斷使用者是否登陸成功(布爾類型),同時提示使用者是否登陸成功(字串類型) using System;using
Time of Update: 2018-07-25
工作中需要計算相機與物體的位置關係, 經同事介紹DLT,感覺還不錯就研究了下. DLT全稱 Direct Linear Transformation 具體的演算法說明(英文)在:http://www.kwon3d.com/theory/dlt/dlt.html 看了半天上面的DLT演算法介紹,很是雲裡霧裡。 這個演算法有2種: A.不計算畸變係數(給的資料是去畸變的) 需要計算一個11乘1的矩陣。
Time of Update: 2018-07-25
jsoncpp 主要包含三個class:Value、Reader、Writer。注意Json::Value 只能處理 ANSI 類型的字串,如果 C++ 程式是用 Unicode 編碼的,最好加一個 Adapt 類來適配。 Json內部類和方法: Reader<是用於讀取的,說的確切點,是用於將字串轉換為
Time of Update: 2018-07-25
基於C#實現數字浮水印工具 摘要 基於C#提供的Image類,實現數字浮水印比較容易;這裡強調的是如何做可release的一個工具。 照片添加 利用C#的FolderBrowserDialog類,可以方便地的讀取影像檔。本文是基於目錄添加照片,所以需要進行目錄遍曆。如果開啟的是目錄,還需要開啟子目錄讀取照片;在本文實現中,唯讀取JPG檔案,並且在添加前試著讀一下,避免一些圖片不能讀取,影響後續操作的有效性。
Time of Update: 2018-07-25
尾碼運算式(逆波蘭運算式),並求值 這是一個棧的簡單應用。 規則:從左至右遍曆中綴運算式的每個數字和符號,若是數字就輸出,即成為尾碼運算式的一部分; 若是符號,則判斷其與棧頂符號的優先順序,是右括弧或優先順序低於找頂符號(乘除優先加減)則棧頂元素依次出找並輸出,並將當前符號進棧,一直到最終輸出尾碼運算式為止。 支援()、+、-、*、/和% #include <stdexcept>#include <iostream>#include
Time of Update: 2018-07-25
一般情況下,我們都是把函式宣告、類定義、模板定義等寫到一個標頭檔裡,需要時將相應的標頭檔用#include包含到源檔案(*.cpp檔案)裡來。但標頭檔中又允許包含其它的標頭檔,這樣就難免發生某個標頭檔被重複地包含。我們可以使用編譯預先處理命令避免這種情況的發生。 例如,你想確保標頭檔max.h不會被重複包含,則你可以採取如下的形式:
Time of Update: 2018-07-25
對於一幅映像,設當前景與背景的分割閾值為 t 時,前景點占映像比例為 w0,均值為 u0,背景點占映像比例為 w1,均值為 u1。則整個映像的均值為 u = w0*u0+w1*u1。建立目標函數g(t)=w0*(u0-u)^2+w1*(u1-u)^2,g(t)就是當分割閾值為t時的類間方差運算式。OTSU演算法使得g(t)取得全域最大值,當g(t)為最大時所對應的t稱為最佳閾值。OTSU演算法又稱為最大類間方差法。