原创 目標,就是一個人心裏的定海神針

今天週末,不聊硬核技術,簡單聊一點工作中的“軟件建設” — 心智。 前兩日與朋友討論工作和生活中的目標、堅守以及是非觀,突然就想起太史公司馬遷來。長長的歷史,總有一些英雄令我們落淚,司馬遷便是其中的一個。 他因李陵案獲罪,因無錢贖免死罪,

原创 求兩個矩形之間的最小距離

正在參與的工程裏有一個小功能是求兩個矩形之間的最小距離。大致翻了一下OpenCV,貌似沒看到現成的函數,那就自己寫一個好了。 一個畫面中,兩個矩形的幾何關係大致可分爲如下幾種,以C1爲參考,分別是: (1) 不相交,但在X或Y軸方向上有部

原创 輪廓相減的兩種實現方法

在優化工程代碼效率。從一系列輪廓合集中減去其中的一個輪廓分量,之前都是通過二值圖像相減的方式,即把總輪廓繪製在一副圖像上Img_1,再把要減去的分量繪製在另一幅圖像Img_2上,然後通過圖像相減得到差值圖像Img_3,再從Img3中找出相

原创 OpenCV中drawContours用法

使用了很久的drawContours,繪製一個輪廓向量基本只會用一種方法,類似如下的方式,傻傻地一個一個繪製。 for(int i = 0; i < contour_vec.size(); i++) { drawContours(bl

原创 一個利用OpenCV進行帶掩膜的圖像拷貝的例子

比較簡單,閒話少說,直接上碼。 #include <iostream> #include <vector> #include "opencv2/core/core.hpp" #include "opencv2/highgui/highg

原创 設計模式概覽——行爲型模式

前面兩篇文章分別整理了設計模式三大類中的創建型模式和結構型模式: 設計模式概覽——創建型模式  設計模式概覽——結構型模式 今天我們再來整理一下最後一部分,行爲型模式。 首先,什麼是行爲型模式? 行爲型模式(Behavioral Patt

原创 設計模式概覽——結構型模式

上篇文章“設計模式概覽——創建型模式”整理了創建型模式的5種類型,今天我們接着來整理一下結構型模式。 結構型模式旨在描述如何將類或對象結合在一起形成更大的結構。類結構型模式關注類的組合,一般只存在繼承關係和實現關係;對象結構型模式關心類與

原创 設計模式概覽——創建型模式

一般認爲,存在23種面向對象設計模式,根據每種模式關注的側重點不同,大致可以分爲三大類:創建型模式(5種)、結構型模式(7種)和行爲型模式(11種),具體劃分如下: 創建型模式:簡單工廠模式、工廠方法模式、抽象工廠模式、建造者模式、單例模

原创 Linux C 實現文件複製、文件及文件夾刪除功能

Linux下的文件操作其實是個很普通的小功能,Linux C提供了一些系統函數可以調用,我們使用的時候只需按照自己的需要封裝一下即可。 1. 文件複製 實現文件從一個目錄複製到另外一個目錄,以下是最簡單的操作,正式的工程中爲了嚴謹起見,儘

原创 OpenCV將圖像旋轉180度

OpenCV將圖像旋轉90度的倍數,如90度、180度、270度,一般有兩種方式:(1) 使用transpose()和flip()兩個函數的組合;(2) OpenCV3 以後可以使用rotate()函數實現圖像旋轉。 1. transpo

原创 淺談面向對象編程相對於面向過程編程的優勢

最近在設計一個項目的二期方案。相對於一期過程驅動的實現,二期則更加模糊了過程的邊界,需要通過分析業務的當前狀態和歷史狀態去推理上下文,雖然硬件上相對簡單了,但對於軟件邏輯來說,卻提出了更多挑戰。所以原來偏重於面向過程風格的實現方法顯得有點

原创 使用OpenCV對工業相機進行視頻錄製

按照以往的做法,視頻錄製推薦FFMPEG、GStreamer等效率更高的方式,OpenCV在視頻方面就顯得不是那麼專業了,但由於其較高的封裝性和使用方法簡單,小夥伴們有時候更願意拿OpenCV去做一些專業度要求不高的簡單錄製。 OpenC

原创 簡單聊聊系統結構

軟件開發都是從混沌到清晰的一個結構化抽象的過程。在動筆寫代碼之前,我們需要搞清楚幾個問題: (1) 系統解決什麼問題? (2) 系統如何與環境交互? (3) 系統的流程如何組織? (4) 系統需要支持的變化範圍是什麼?等等。 思考清楚了這

原创 Linux系統下創建svn倉庫

創建了不少倉庫了,但每次創建新的項目時,仍然要翻筆記翻攻略,感覺大腦已經退化(進化)到不適合記憶簡單的命令了,哈哈。所以索性自己把步驟記錄下來,用到的時候直接瞄一眼好了~ 登入svn服務器,進入svn目錄,我的是/srv/svn,該目錄下

原创 網絡通信基礎

最近在設計開發一個智能視覺檢測系統,涉及到一些通信知識,加上之前學習瞭解的內容,順手整理一下。 1. 網絡數據封包過程 網絡通信離不開各種各樣的協議,不然通信各端就得懵圈。網絡協議簡單理解就是計算機之間通信的數據格式。可以通過網絡分層模型