Time of Update: 2018-12-04
open/read/write和fopen/fread/fwrite的區別 open:系統調用,返回的是檔案描述符,即檔案控制代碼,是檔案在檔案描述副表裡的索引。fopen:C語言庫函數,返回的是一個指向檔案結構的指標。fopen是ANSI
Time of Update: 2018-12-04
Linux下有一款非常好用的寫C++的IDE,code::blocks,其採用自有的工程檔案(.cbp)來組織相關原始碼。但是有的時候希望能夠脫離CB,以便於原始碼的分享。常見開源項目採用makefile來組織原始碼的編譯。cbp2make可以很好的將CB的工程檔案轉換為makefile檔案。1、下載cbp2make的原始碼;2、解壓後開啟工程檔案cbp2make.cbp,然後在CB中建造工程。3、為長期使用方便,可複製建造後的程式到系統中;sudo cp ./bin/Release/cbp2
Time of Update: 2018-12-04
先來一個講TCP、UDP和HTTP關係的,注意紅色mark的部分 1、TCP/IP是個協議組,可分為三個層次:網路層、傳輸層和應用程式層。在網路層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。在傳輸層中有TCP協議與UDP協議。在應用程式層有FTP、HTTP、TELNET、SMTP、DNS等協議。因此,HTTP本身就是一個協議,是從Web伺服器傳輸超文本到本地瀏覽器的傳送協議。2、HTTP協議是建立在請求/響應模型上的。首先由客戶建立一條與伺服器的TCP連結,並發送一個請求
Time of Update: 2018-12-04
#include <Winsock2.h>#include <stdio.h>void main(){WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );//載入Ws2_32.dllerr = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) {return;}if ( LOBYTE(
Time of Update: 2018-12-04
TCP的流量控制1. 利用滑動視窗實現流量控制 如果發送方把資料發送得過快,接收方可能會來不及接收,這就會造成資料的丟失。所謂流量控制就是讓發送方的發送速率不要太快,要讓接收方來得及接收。 利用滑動視窗機制可以很方便地在TCP串連上實現對發送方的流量控制。 設A向B發送資料。在串連建立時,B告訴了A:“我的接收視窗是 rwnd = 400 ”(這裡的 rwnd 表示 receiver window)
Time of Update: 2018-12-04
bool MotionBlur(IplImage* src){// 指向靶心圖表像的指標unsigned char * LPsrc;//圖象的寬度和高度int Width = src->width;int Height= src->height;int LineBytes=src->width*src->nChannels;int iColumn, jRow;//迴圈變數int temp,m;//臨時變數double p,q;// 臨時變數int
Time of Update: 2018-12-04
有對搜尋引擎有點瞭解的,就應該知道倒排索引吧。不知道也不要緊,看看就行了,這種資料結構比較簡單,但很實用, 這裡舉個例子來說明,有時候在非搜尋引擎的運用中,倒排索引也能顯著提高演算法效率。 例. 在一串由0,1,2,3,4,5,6,7,8,9這十個字元組成的長度為n的序列中,找出各字元至少出現一次且長度最小的子串長度。演算法一:暴力 枚舉一個起點一個終點,檢查區間的字元是否滿足條件,求出最小值。時間複雜度O(n^3),慢得要死。演算法二:最佳化的暴力
Time of Update: 2018-12-04
為什麼內嵌函式,建構函式,靜態成員函數不能為virtual函數?1> 內嵌函式內嵌函式是在編譯時間期展開,而虛函數的特性是運行時才動態聯編,所以兩者矛盾,不能定義內嵌函式為虛函數。2> 建構函式建構函式用來建立一個新的對象,而虛函數的運行是建立在對象的基礎上,在建構函式執行時,對象尚未形成,所以不能將建構函式定義為虛函數。3>
Time of Update: 2018-12-04
1.灰階變換增強程式:% GRAY TRANSFORMclc;I=imread('pout.tif');imshow(I);J=imadjust(I,[0.3 0.7],[0 1],1); %transforms the walues in the %intensity image I to values in J by linealy mapping %values between 0.3 and 0.7 to values between 0 and 1.figure;imshow(J)
Time of Update: 2018-12-04
傅立葉變換在影像處理中有非常非常的作用。因為不僅傅立葉分析涉及影像處理的很多方面,傅立葉的改進演算法,比如離散餘弦變換,gabor與小波在影像處理中也有重要的分量。印象中,傅立葉變換在影像處理以下幾個話題都有重要作用:1.映像增強與映像去噪絕大部分噪音都是映像的高頻分量,通過低通濾波器來濾除高頻——雜訊;
Time of Update: 2018-12-04
#include <stdio.h>#include <cv.h>#include <cxcore.h>#include <highgui.h>/**************************************************************************//傅裡葉變換//src IPL_DEPTH_8U//dst IPL_DEPTH_64F/**********************************
Time of Update: 2018-12-04
看UNIX編程相關的書在講訊號的時候會列出一大堆的保證訊號安全的函數,在講線程的時候也會例出一些不保證安全執行緒的函數。需要把它們都記下來嗎?我覺得太可不必,也不科學,不瞭解根本你很可能自己寫出一個不安全的函數,然後在訊號處理裡或是多線程程式裡使用,出了問題卻莫名其妙! 一般來說如果函數內部使用了靜態變數或是全域變數,或是傳了引用進去的函數就不具可重新進入性。具體可重新進入函數的概念可以去百度一下。
Time of Update: 2018-12-04
本人自己做的:#include "stdafx.h"#include<opencv/cv.h>#include<opencv/highgui.h>int main(){ //a.1從視頻中趣圖並顯示。 CvCapture* capture = cvCreateFileCapture("C:\\test.avi"); IplImage* frame= cvQueryFrame( capture ); if( !frame ) return -1;
Time of Update: 2018-12-04
fcntl有強大的功能,它能夠複製一個現有的描述符,獲得/設定檔案描述符標記,獲得/設定檔案狀態標記,獲得/設定非同步I/O所有權,獲得/設定紀錄鎖。當多個使用者共同使用,操作一個檔案的情況,Linux通常採用的方法就是給檔案上鎖,來避免共用資源產生競爭的狀態。fcntl檔案鎖有兩種類型:建議性鎖和強制性鎖建議性鎖是這樣規定的:每個使用上鎖檔案的進程都要檢查是否有鎖存在,當然還得尊重已有的鎖。核心和系統總體上都堅持不使用建議性鎖,它們依靠程式員遵守這個規定。(Linux預設是採用建議性鎖)強制性
Time of Update: 2018-12-04
二維Fourier變換的應用前面已經提到了Fourier變換有兩個好處,即:可以獲得訊號的頻域特性;可以將卷積運算轉換為乘積運算。因此二維Fourier變換的應用也是根據這兩個特點來進行的。在映像濾波中的應用首先,我們來看Fourier變換後的映像,中間部分為低頻部分,越靠外邊頻率越高。因此,我們可以在Fourier變換圖中,選擇所需要的高頻或是低頻濾波。在映像壓縮中的應用變換係數剛好表現的是各個頻率點上的幅值。在小波變換沒有提出時,用來進行壓縮編碼。考慮到高頻反映細節、低頻反映景物概貌的特性
Time of Update: 2018-12-04
無論是傅立葉變換還是小波變換,其實質都是一樣的,既:將訊號在時間域和頻率域之間相互轉換,從看似複雜的資料中找出一些直觀的資訊,再對它進行分析。由於訊號往往在頻域有比在時域更加簡單和直觀的特性,所以,大部分訊號分析的工作是在頻域中進行的。音樂——其實就是時/頻分析的一個極好例子,樂譜就是音樂在頻域的訊號分布,而音樂就是將樂譜變換到時域之後的函數。從音樂到樂譜,是一次傅立葉或小波變換;從樂譜到音樂,就是一次傅立葉或小波逆變換。1、傅立葉變換可以理解為:任意一條在實數域內有意義的曲線都可以分解為若干個
Time of Update: 2018-12-04
Reactor模型Reactor模式是處理並發I/O比較常見的一種模式,中心思想就是,將所有要處理的I/O事件註冊到一個中心I/O多工器上,同時主線程阻塞在多工器上;一旦有I/O事件到來或是準備就緒(區別在於多工器是邊沿觸發還是水平觸發),多工器返回並將相應I/O事件分發到對應的處理器中。這裡有三個重要的組件:多工器:由作業系統提供,在linux上一般是select, poll,
Time of Update: 2018-12-04
1.指標函數的定義 顧名思義,指標函數即返回指標的函數。其一般定義形式如下: 類型名
Time of Update: 2018-12-04
開運算和閉運算 (1)開運算 先腐蝕後膨脹的過程稱為開運算。用來消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時並不明顯改變其面積。 (2)閉運算 先膨脹後腐蝕的過程稱為閉運算。用來填充物體內細小空洞、串連鄰近物體、平滑其邊界的同時並不明顯改變其面積。 通常,由於雜訊的影響,圖象在閾值化後所得到邊界往往是很不平滑的,物體地區具有一些雜訊孔,背景地區上散布著一些小的雜訊物體。連續的開和閉運算可以有效地改善這種情況。有時需要經過多次腐蝕之後再加上相同次數的膨脹,才
Time of Update: 2018-12-04
%一,映像的預先處理,讀入彩色映像將其灰階化PS=imread('1.jpg'); %讀入JPG彩色影像檔imshow(PS) %顯示出來 title('輸入的彩色JPG映像')imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %將彩色圖片灰階化並儲存PS=rgb2gray(PS);