- Mar 21 Mon 2016 08:02
-
小一期中試卷
4/21 這一天為小一的學期的期中考, 所以今天(3/21)幫茗禾找一些考古題來練習 準備讓小朋友自己安排時間, 上網google一找, 可以下載一堆試題題庫 此外, 自己翻一翻內容,
- Mar 17 Thu 2016 12:54
-
利用距離轉換和分水嶺演算法進行影像分割

以下是參考官方文件[1] Image Segmentation with Distance Transform and Watershed Algorithm並將其範例封裝成C++ DLL, 由C# UI進行各項參數試驗c++ImageProc.h
#include <wchar.h>#include <opencv2\highgui\highgui.hpp>#include <opencv2\imgproc\imgproc.hpp>#pragma once
using namespace std;
using namespace cv;
namespace CVision{public ref class ImageProc
{ public: ImageProc(){};bool imread(wchar_t *filename);
bool imshow(); void changeBGBlack();void changeBGBlack(int threshBlue, int threshGreen, int threshRed);
void sharpImage();void bgr2Gray(int thresh);
void distTransform(); void extractPeaks(); void labelMarkers(); void applyWatershed(); private: std::string WstringToString(const std::wstring str);};
}
- Mar 13 Sun 2016 08:58
-
OpenCV 像素加入雜訊

之前有寫過一篇關於OpenCV像素取/存值的方式[1]彩色像素取值image.at<cv::Vec3b>(row, col)[0]image.at<cv::Vec3b>(row, col)[1]image.at<cv::Vec3b>(row, col)[2]灰階像素取值image.at<uchar>(row, col) = 255;加上另一篇[2] 利用C# 拉UI並傳參數給OpenCV C++ DLL
- Mar 11 Fri 2016 02:32
-
利用C# 拉UI並傳參數給OpenCV C++ DLL

How to Create an OpenCV C++ DLL and To be Used in C# Windows Form Project?如果你跟我一樣:1. 有點厭倦使用EmguCV, 理由很簡單: 因為當你google 關鍵字OpenCV找到的範例絕大部分應該是C++為大宗, 所以你得即時翻譯成EmguCV語法, 無法享受Copy-Paste的快樂; 雖然話說習慣成自然, 但是久沒有使用, 時間是會沖淡一切….2. 當你使用 C++, 又開始懷念C#拉UI的快樂時, 你不得不考慮兩者加在一起使用….3. 綜合1.2兩點, 希望可以在C# windows form快快樂樂拉UI, 同時簡簡單單將不同參數傳給OpenCV,最重要的是可以快速複製貼上OpenCV的範例程式….哈哈!!! 4. 當OpenCV C++函式庫有變動時, 只需要編譯整個方案(solution)就可以全部一次更新完成所以接下來要寫一個簡單範例,
- Mar 10 Thu 2016 12:55
-
Calculating Disparity Map Using OpenCV 2.4.9 with Visual Studio 2010

加入現有屬性工作表 VS2010OpenCV249X64ReleaseVS2010OpenCV249X86DebugVS2010OpenCV249X86Release
#include "stdafx.h"
#include <core\core.hpp>#include <calib3d\calib3d.hpp>#include <highgui\highgui.hpp>#include <imgproc\imgproc.hpp>#include <contrib\contrib.hpp>using namespace cv;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{Mat img1, img2, g1, g2;
Mat disp, disp1, disp2;
img1 = imread("tsukuba1.jpg"); img2 = imread("tsukuba2.jpg");cvtColor(img1, g1, CV_BGR2GRAY);
cvtColor(img2, g2, CV_BGR2GRAY);
//-----------------------------------------------------------StereoBM sbm;
sbm.state->SADWindowSize = 5;
sbm.state->numberOfDisparities = 112;
sbm.state->preFilterSize = 5;
sbm.state->preFilterCap = 61;
sbm.state->minDisparity = -39;
sbm.state->textureThreshold = 507;
sbm.state->uniquenessRatio = 0;
sbm.state->speckleWindowSize = 0;
sbm.state->speckleRange = 8;
sbm.state->disp12MaxDiff = 1;
sbm(g1, g2, disp);
normalize(disp, disp1, 0, 255, CV_MINMAX, CV_8U);
StereoSGBM sgbm;
sgbm.SADWindowSize = 5;
sgbm.numberOfDisparities = 192;
sgbm.preFilterCap = 4;
sgbm.minDisparity = -64;
sgbm.uniquenessRatio = 1;
sgbm.speckleWindowSize = 150;
sgbm.speckleRange = 2;
sgbm.disp12MaxDiff = 10;
sgbm.fullDP = false;
sgbm.P1 = 600;
sgbm(g1, g2, disp);
normalize(disp, disp2, 0, 255, CV_MINMAX, CV_8U);sgbm.P2 = 2400;
imshow("left", img1); imshow("right", img2); imshow("disp1", disp1); imshow("disp2", disp2);cvWaitKey();
return 0;}
- Mar 09 Wed 2016 08:28
-
C# Something You Should Know when Using SerialPort 串列埠使用須知

以往我的做法是”COM”+數字(1~16)然後再去跑回圈測試可能的串列埠, snipet code like this[1]:
using System.IO.Ports;private SerialPort sp;for (int i = 1; i <= 16; i++)
{ try {sp = new SerialPort("COM" + i.ToString(), baud, parity, databits, stopbits);
sp.Open();
if(sp.IsOpen){this.Label1.Text += ("COM"+i.ToString()+" is available.\n");
}
}
catch (Exception) //開埠不成功就會到這來
{ // 執行開埠不成功的處理}
finally {sp.Close();
}
}
- Mar 03 Thu 2016 09:33
-
OpenCV 2.4.9 取得和設定彩色(灰階)影像的像素值

#include "stdafx.h"
#include <opencv2\core\core.hpp>#include <opencv2\highgui\highgui.hpp>#include <iostream>using namespace std;
using namespace cv;
void AddNoise(Mat image, int numPts); // 加入雜訊
int _tmain(int argc, _TCHAR* argv[])
{char *path = "C:\\OpenCV\\images\\lena.jpg";
Mat image;
// 載入圖檔image = imread(path, CV_LOAD_IMAGE_COLOR);
// 檢查讀檔是否成功 if(! image.data ) { cout << "無法開啟或找不到圖檔" << std::endl ; return -1;}
namedWindow("original image", CV_WND_PROP_AUTOSIZE); imshow("original image", image); //------------------------------------- int numPts = 10000;AddNoise(image, numPts);
namedWindow("image with noise", CV_WND_PROP_AUTOSIZE); imshow("image with noise", image);waitKey(0);
getchar();
return 0;}
- Mar 03 Thu 2016 08:58
-
C# 在PictureBox 畫線: 虛線, 點線, 點虛線

MSDN官方網頁並沒有標記5,2,15,4乍看之下, 一頭霧水後來在另一個討論主題看到其他人解釋才豁然開朗畫虛線 float[] dashValues = { 2, 2 };畫點線 float[] dashValues = { 1, 1 };畫點虛線 float[] dashValues = { 1, 2, 2, 1 };
變更字的顏色 system.Drawing.Brush
- Feb 27 Sat 2016 23:08
-
C#多執行緒應用: TCP/IP 伺服器和客戶端連線

整理之前的資料, 希望做到下列功能1. 伺服端開啟一個執行緒, 隨時提供客戶端連線2. 伺服端當偵測到客戶連線, 則啟動另一個執行緒監聽客戶端傳來的內容3. 伺服端可以隨時暫停/繼續服務, 在此同時也不能讓伺服端和客戶端程式當機4. 當伺服端暫停服務時, 客戶端會顯示”等待伺服端啟動服務…”5. 當伺服端再繼續服務時, 客戶端可以自動偵測並自動連線, 傳送資料6. 客戶端開啟一個執行緒, 並可隨時暫停/繼續傳送資料, 在此同時也不能讓伺服端和客戶端程式當機7. 當客戶端停止連線, 伺服端會顯示”等待客戶端連線…”加入新項目 TCPServerAP.cs
using System.Net; // 匯入通訊協定
using System.Net.Sockets; // 匯入網路插座功能函數
using System.Threading; // 匯入多執行緒功能函數
using System.Collections; // 匯入集合物件功能
- Feb 26 Fri 2016 14:01
-
小一下學期數學
最近小朋友開始學習硬幣50元, 10元, 5元, 1元,幾個重點要學習:1. 79元, 給數個50元, 10元, 5元, 1元硬幣, 請湊出2種可能的組合技巧1: 讓小朋友直接操作硬幣, 對照題目練習提升興趣技巧2: 先從大單位(50元)開始湊, 如果沒有則考慮10元, 湊到十位數達到7, 也就是70 元; 最後開始湊個位數技巧3: 抽換機制: 大換小, 例如10元可以換2個5元硬幣, 這樣就可以有不同組合-----------------------------------------------------------------------------------------------會湊硬幣後, 接下來練習買一樣東西, 例如買89元, 手中已有數枚10元, 5元, 1元技巧1: 計算手中有多少錢
