加油站顶棚网架价多少钱一平,如何做一个网页布局,做情诗网站,小程序店铺怎么开透视矫正不够智能化#xff0c;每次都要进行局部参数调整#xff0c;不便于程序使用#xff0c;程序流程还是那几个步骤#xff1b;
1、读取图像、灰度化
2、高斯滤波
3、二值化
4、边缘检测
灰度化图 上个图看看经过调整透视矫正边缘检测结果我还是挺满意的 发现一个… 透视矫正不够智能化每次都要进行局部参数调整不便于程序使用程序流程还是那几个步骤
1、读取图像、灰度化
2、高斯滤波
3、二值化
4、边缘检测
灰度化图 上个图看看经过调整透视矫正边缘检测结果我还是挺满意的 发现一个新问题获取最大面积的四个点有两个点重复在一个位置 一、读取图像、灰度化 固定化格式按部就班 private void button1_Click(object sender, EventArgs e){OpenFileDialog dialog new OpenFileDialog();dialog.Multiselect false;//该值确定是否可以选择多个文件dialog.Title 请选择文件夹;dialog.Filter 所有文件(*.*)|*.*;if (dialog.ShowDialog() System.Windows.Forms.DialogResult.OK){// 1、读取图像、灰度化string file dialog.FileName;Mat image Cv2.ImRead(file, ImreadModes.Color);Mat src_gray new Mat();Cv2.CvtColor(image, src_gray, ColorConversionCodes.BGR2GRAY); // 转换为灰度图像} 二高斯滤波
高斯模糊容易找到最大边界进行校正具体参数说明搜索一堆答案不在描述了
/// summary
/// 2、高斯滤波
/// /summary
private void GaussianBlur()
{Cv2.GaussianBlur(src_img, dst, new OpenCvSharp.Size(gussX, gussY), gussPX, gussPY); //高斯模糊pictureBox1.Image dst.ToBitmap();pictureBox1.Refresh();
} 三、二值化
二值化区分索要区域便于边缘检测
/// summary
/// 二值化
/// /summary
private void Threshold()
{if (cmBoxThre.Text ){return;}ThresholdTypes aaa (ThresholdTypes)Enum.Parse(typeof(ThresholdTypes), cmBoxThre.Text);try{Cv2.Threshold(src_img, dst, tkBarThresh.Value, tkBarMaxValue.Value, aaa);//阈值二值化picBoxShowDel.Image dst.ToBitmap();}catch (Exception e){Console.WriteLine(e);}}
四、边缘检测 /// summary/// 边缘检测Canny/// /summaryprivate void Canny(){int hole 0;if (!int.TryParse(txtBoxCannyHole.Text, out hole)){return;}try{Cv2.Canny(src_img, dst, tkBarCannyMin.Value, tkBarCannyMax.Value, hole, rbBtnTrue.Checked); picBoxShowDel.Image dst.ToBitmap();}catch (Exception e){Console.WriteLine(e);}}
未完后续在补充~