- Aug 24 Fri 2018 10:56
-
使用Anaconda安裝OpenCV 3.4.1
- Jul 25 Wed 2018 10:06
-
Install Visual Studio Code for Windows
- Jul 17 Tue 2018 10:52
-
在Azure上通过asp.net使用EmguCV
- May 28 Mon 2018 12:03
-
Point Cloud Data retrieved from Kinect 2

Since the Viz(Visualization Toolkit) is not included in official opencv package, you have to build it
Building VTK with Visual Studio
- Apr 19 Thu 2018 11:28
-
Setup AdamApax.Net Utilty

http://support.advantech.com.tw/support/DownloadSRDetail_New.aspx?SR_ID=1-2AKUDB&Doc_Source=Download
- Apr 18 Wed 2018 07:51
-
SQL Server 2017 Express Edition Installation
- Apr 17 Tue 2018 14:42
-
Http server

1. MicroHttpServer - 用100行C#寫一個HTTP Server 示範寫一個簡單http server console application 下圖為瀏覽器顯示server端特定資料夾下的影像資訊 2. Simple HTTP Server in C#
- Apr 17 Tue 2018 14:15
-
8路網絡繼電器 IP繼電器 Web Relay

8路網絡繼電器 IP繼電器 Web Relay 雙控本地 手機 遠程控制 /安卓 蘋果 平板 windows系統 NT $1,500 一、功能(Feature): 1. 以太網RJ45介面 。 2. 板載WEB伺服器,可通過web方式訪問並控制。
- Apr 11 Wed 2018 12:16
-
Some Usefule OpenCV Demostrations

How to make auto-adjustments(brightness and contrast) for image Android Opencv Image Correction
1: /**
2: * \brief Automatic brightness and contrast optimization with optional histogram clipping
3: * \param [in]src Input image GRAY or BGR or BGRA
4: * \param [out]dst Destination image
5: * \param clipHistPercent cut wings of histogram at given percent tipical=>1, 0=>Disabled
6: * \note In case of BGRA image, we won't touch the transparency
7: */
8: void BrightnessAndContrastAuto(const cv::Mat &src, cv::Mat &dst, float clipHistPercent=0)
9: { 10: 11: CV_Assert(clipHistPercent >= 0); 12: CV_Assert((src.type() == CV_8UC1) || (src.type() == CV_8UC3) || (src.type() == CV_8UC4)); 13: 14: int histSize = 256;
15: float alpha, beta;
16: double minGray = 0, maxGray = 0;
17: 18: //to calculate grayscale histogram
19: cv::Mat gray;20: if (src.type() == CV_8UC1) gray = src;
21: else if (src.type() == CV_8UC3) cvtColor(src, gray, CV_BGR2GRAY);
22: else if (src.type() == CV_8UC4) cvtColor(src, gray, CV_BGRA2GRAY);
23: if (clipHistPercent == 0)
24: {25: // keep full available range
26: cv::minMaxLoc(gray, &minGray, &maxGray); 27: }28: else
29: {30: cv::Mat hist; //the grayscale histogram
31: 32: float range[] = { 0, 256 };
33: const float* histRange = { range };
34: bool uniform = true;
35: bool accumulate = false;
36: calcHist(&gray, 1, 0, cv::Mat (), hist, 1, &histSize, &histRange, uniform, accumulate); 37: 38: // calculate cumulative distribution from the histogram
39: std::vector<float> accumulator(histSize);
40: accumulator[0] = hist.at<float>(0);
41: for (int i = 1; i < histSize; i++)
42: {43: accumulator[i] = accumulator[i - 1] + hist.at<float>(i);
44: } 45: 46: // locate points that cuts at required value
47: float max = accumulator.back();
48: clipHistPercent *= (max / 100.0); //make percent as absolute
49: clipHistPercent /= 2.0; // left and right wings
50: // locate left cut
51: minGray = 0;52: while (accumulator[minGray] < clipHistPercent)
53: minGray++; 54: 55: // locate right cut
56: maxGray = histSize - 1;57: while (accumulator[maxGray] >= (max - clipHistPercent))
58: maxGray--; 59: } 60: 61: // current range
62: float inputRange = maxGray ...
- Apr 09 Mon 2018 11:00
-
RestSharp and NewtonSoft.Json Installation
- Feb 26 Mon 2018 11:16
-
Adjust a Contour Point to another place

Given a set of connected points, where they are filled with red color. And we arrange these points in a rectangle and those blue points are down-sampled points of them. If we move one of blue points, how do we update those neighborhood of it? 1. first, find the neighborhood points that are close enough to pt1, in which their Eucliden distances to Pt1 should be less than ε 2. calculate the movement between Pt1 and Pt1’, and name it as D
- Feb 01 Thu 2018 11:36
-
Composite Pattern – Design Pattern (Using C#) – Part II

1. Add Mouse (0) to the list 2. Add Monitor (1) to the list 3. Create a peripheral (ph, 10), which group Mouse and Monitor together, and add to the list. 4. Add CPU (2) to the list



