天天看點

學習圖像處理知識---EmguCV3.4圖像--門檻值處理

在圖像處理,二值化圖像很重要的,尤其在機器視覺中,找MARK,找零件中心點,必須使用,減少資料處理量。

1.CvInvoke 類中

public static double Threshold(
	IInputArray src,//輸入必須為單通道圖像
	IOutputArray dst,//輸出圖像
	double threshold,//閥值
	double maxValue,//最大值
	ThresholdType thresholdType//閥值變換的類型。
)      

變換的類型,不同圖像轉換後不同:

學習圖像處理知識---EmguCV3.4圖像--門檻值處理

2.自适應門檻值

public static void AdaptiveThreshold(
	IInputArray src,//輸入必須為單通道圖像
	IOutputArray dst,//輸出同輸入尺寸單通道圖檔
	double maxValue,//最大值
	AdaptiveThresholdType adaptiveType,//自适應門檻值的類型
	ThresholdType thresholdType,//閥值變換的類型,同上
	int blockSize,//像數領域大小,如果為3就是3*3區域
	double param1 )//均值或高斯權重平均值所需要減去的一個常數,相當幹預值      
學習圖像處理知識---EmguCV3.4圖像--門檻值處理

執行個體練習:

         Emgu.CV.Image<Bgr, Byte> YUAN = new Image<Bgr, Byte>((Bitmap)pictureBox1.Image);

            Mat a1 = YUAN.Convert<Gray, Byte>().Mat;//變成灰圖

            Mat a2 = new Mat(a1.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1);//定義跟a1一緻的圖像

            CvInvoke.Threshold(a1, a2, (double)numericUpDown1.Value, 255, Emgu.CV.CvEnum.ThresholdType.Binary);

            pictureBox2.Image = a2.Bitmap;

學習圖像處理知識---EmguCV3.4圖像--門檻值處理
學習圖像處理知識---EmguCV3.4圖像--門檻值處理

CvInvoke.AdaptiveThreshold(a1,a2,255,Emgu.CV.CvEnum.AdaptiveThresholdType.MeanC,Emgu.CV.CvEnum.ThresholdType.Binary, 3, (double)numericUpDown1.Value);

學習圖像處理知識---EmguCV3.4圖像--門檻值處理

繼續閱讀