当前位置: 首页 > news >正文

做二手车网站需要什么手续费南通云网站建设

做二手车网站需要什么手续费,南通云网站建设,wordpress sql文件,wordpress登录框透明透视矫正,引用文档拍照扫描#xff0c;相片矫正这块。 读取图像Cv2.ImRead();预处理#xff08;灰度化#xff0c;高斯滤波、边缘检测#xff09;轮廓检测#xff08;获取到最大轮廓#xff09;获取最大面积轮廓的四个顶点标识最小矩形坐标透视矫正显示 完整代码 // 1、…透视矫正,引用文档拍照扫描相片矫正这块。 读取图像Cv2.ImRead();预处理灰度化高斯滤波、边缘检测轮廓检测获取到最大轮廓获取最大面积轮廓的四个顶点标识最小矩形坐标透视矫正显示 完整代码 // 1、读取图像Mat image Cv2.ImRead(2.jpg, ImreadModes.Color);//2、预处理灰度化高斯滤波、边缘检测Mat src_gray new Mat();Cv2.CvtColor(image, src_gray, ColorConversionCodes.BGR2GRAY); // 转换为灰度图像Cv2.GaussianBlur(src_gray, src_gray, new Size(5, 5), 0, 0); // 进行高斯模糊Mat canny_Image new Mat();Cv2.Canny(src_gray, canny_Image, 75, 200);//3、轮廓检测Point[][] contours;HierarchyIndex[] hierarchy;Cv2.FindContours(canny_Image, out contours, out hierarchy, RetrievalModes.External, ContourApproximationModes.ApproxSimple);// 计算轮廓的面积double maxArea 0;int maxAreaIndex -1;for (int i 0; i contours.Length; i){double area Cv2.ContourArea(contours[i]);if (area maxArea){maxArea area;maxAreaIndex i;}}// 获取最大面积的轮廓Point[] largestContour contours[maxAreaIndex];//4、获取最大面积轮廓的四个顶点。Point[] approx Cv2.ApproxPolyDP(contours[maxAreaIndex], 0.02 * Cv2.ArcLength(contours[maxAreaIndex], true), true);Cv2.DrawContours(image, new Point[][] { approx }, -1, Scalar.Blue, 2);//可以注释掉for (int i 0; i 4; i){// 设置目标图像的四个顶点坐标//Cv2.PutText(image, Hi, new Point(approx[i].X, approx[i].Y), HersheyFonts.HersheySimplex, 1, new Scalar(0, 0, 255), 2, LineTypes.Link4);}//5、透视转换OpenCvSharp.Point2f[] srcPt new OpenCvSharp.Point2f[4];srcPt[0] approx[0];srcPt[1] approx[3];srcPt[2] approx[2];srcPt[3] approx[1];RotatedRect rect Cv2.MinAreaRect(srcPt);Rect box rect.BoundingRect();OpenCvSharp.Point2f[] dstPt new OpenCvSharp.Point2f[4];//可以注释掉用于观察坐标点是否对齐dstPt[0].X 0;dstPt[0].Y 0;dstPt[1].X 0 box.Width;dstPt[1].Y 0;dstPt[2].X 0 box.Width;dstPt[2].Y 0 box.Height;dstPt[3].X 0;dstPt[3].Y 0 box.Height;Mat final new Mat(box.Height, box.Width, MatType.CV_8UC3);Mat warpmatrix Cv2.GetPerspectiveTransform(srcPt, dstPt);//获得变换矩阵Cv2.WarpPerspective(image, final, warpmatrix, final.Size());//投射变换将结果赋给finalCv2.ImShow(获取新正四边形, final);Cv2.WaitKey(0);Rect roi new Rect(box.X, box.Y, box.Width, box.Height);//坐标 x,y 尺寸 长宽Mat croppedImage new Mat(final, roi);for (int i 0; i 4; i){// 设置目标图像的四个顶点坐标Cv2.PutText(image, A i, new Point(dstPt[i].X, dstPt[i].Y), HersheyFonts.HersheySimplex, 1, new Scalar(0, 0, 255), 2, LineTypes.Link4);}// 显示结果Cv2.ImShow(透视矫正图像, image);Cv2.WaitKey(0); 一 、读取图像Cv2.ImRead() // 1、读取图像 Mat image Cv2.ImRead(2.jpg, ImreadModes.Color);二、预处理灰度化高斯滤波、边缘检测  灰度化Cv2.CvtColor() 高斯滤波Cv2.GaussianBlur(); 边缘检测Cv2.Canny(); //2、预处理灰度化高斯滤波、边缘检测Mat src_gray new Mat(); Cv2.CvtColor(image, src_gray, ColorConversionCodes.BGR2GRAY); // 转换为灰度图像 Cv2.GaussianBlur(src_gray, src_gray, new Size(5, 5), 0, 0); // 进行高斯模糊 Mat canny_Image new Mat(); Cv2.Canny(src_gray, canny_Image, 75, 200); 三、轮廓检测获取到最大轮廓  通过Cv2.ContourArea()计算轮廓的面积选出最大轮廓 //3、轮廓检测 Point[][] contours; HierarchyIndex[] hierarchy; Cv2.FindContours(canny_Image, out contours, out hierarchy, RetrievalModes.External, ContourApproximationModes.ApproxSimple);// 计算轮廓的面积 double maxArea 0; int maxAreaIndex -1; for (int i 0; i contours.Length; i) {double area Cv2.ContourArea(contours[i]);if (area maxArea){maxArea area;maxAreaIndex i;} }// 获取最大面积的轮廓 Point[] largestContour contours[maxAreaIndex]; 四、 获取最大面积轮廓的四个顶点。 Cv2.ApproxPolyDP() 获取4个顶点坐标 //4、获取最大面积轮廓的四个顶点。 Point[] approx Cv2.ApproxPolyDP(contours[maxAreaIndex], 0.02 * Cv2.ArcLength(contours[maxAreaIndex], true), true); 标识四个顶点 //可以注释掉for (int i 0; i 4; i){// 设置目标图像的四个顶点坐标Cv2.PutText(image, Hi, new Point(approx[i].X, approx[i].Y), HersheyFonts.HersheySimplex, 1, new Scalar(0, 0, 255), 2, LineTypes.Link4);} 五、标识最小矩形坐标 获取顶点内最小矩形Cv2.MinAreaRect(srcPt); //获取四个顶点坐标最小矩形顶点 RotatedRect rect Cv2.MinAreaRect(srcPt); Rect box rect.BoundingRect(); OpenCvSharp.Point2f[] dstPt new OpenCvSharp.Point2f[4]; stPt[0].X box.X;dstPt[0].Y box.Y;dstPt[1].X box.X box.Width;dstPt[1].Y box.Y;dstPt[2].X box.X box.Width;dstPt[2].Y box.Y box.Height;dstPt[3].X box.X;dstPt[3].Y box.Y box.Height;Mat final new Mat();Mat warpmatrix Cv2.GetPerspectiveTransform(srcPt, dstPt);//获得变换矩阵Cv2.WarpPerspective(image, final, warpmatrix, image.Size());//投射变换将结果赋给finalRect roi new Rect(box.X, box.Y, box.Width, box.Height);//坐标 x,y 尺寸 长宽Mat croppedImage new Mat(final, roi);for (int i 0; i 4; i){// 设置目标图像的四个顶点坐标Cv2.PutText(image, A i, new Point(dstPt[i].X, dstPt[i].Y), HersheyFonts.HersheySimplex, 1, new Scalar(0, 0, 255), 2, LineTypes.Link4);} 两个坐标点顺序不一样对齐坐标顺序进行透视坐标转换 //5、透视转换OpenCvSharp.Point2f[] srcPt new OpenCvSharp.Point2f[4];srcPt[0] approx[0];srcPt[1] approx[3];srcPt[2] approx[2];srcPt[3] approx[1];RotatedRect rect Cv2.MinAreaRect(srcPt);Rect box rect.BoundingRect();OpenCvSharp.Point2f[] dstPt new OpenCvSharp.Point2f[4];dstPt[0].X box.X;dstPt[0].Y box.Y;dstPt[1].X box.X box.Width;dstPt[1].Y box.Y;dstPt[2].X box.X box.Width;dstPt[2].Y box.Y box.Height;dstPt[3].X box.X;dstPt[3].Y box.Y box.Height;Mat final new Mat(); 六、透视变换显示 Mat warpmatrix Cv2.GetPerspectiveTransform(srcPt, dstPt);//获得变换矩阵 Cv2.WarpPerspective(image, final, warpmatrix, final.Size());//投射变换将结果赋给final Cv2.ImShow(透视矫正图像, final); 通过掌握这六个步骤你可以在C#中使用OpenCvSharp实现透视矫正。祝你成功
http://www.pierceye.com/news/23413/

相关文章:

  • 网站开发与设计.networdpress插图文章排版
  • 自己做的网站会被黑吗西安企业网站开发
  • ps做网站页面设置为多大昆山建设局图审中心网站
  • 帮别人做钓鱼网站php用什么做网站服务器
  • 网站建设捌金手指下拉二七wordpress会员查看
  • 网站做得好的公司深圳网站设计公司哪家好
  • 杭州网站制作多少钱体育局网站建设方案
  • 建什么网站能百度收录中国工业机械加工网
  • 洪梅网站建设公司品牌网站建设的作用
  • 个人备案网站类型国家企业信用信息系统公示查询官网
  • 做金融网站拘留多久怎样创建网站域名平台
  • 网站备案怎么才能快速网站建设具体工作总结
  • 深圳提供网站建设服务平台网页制作与维护
  • 购买腾讯备案网站怀化seo快速排名
  • 做网站的公司还市场吗有网址的公司
  • 嘉兴论坛网站建设网站建设需要投资多少
  • wordpress主题无法安装目录wordpress 4.9 优化
  • 网站后台修改不了全网通官方网站
  • 电子商务网站建设方案目录如果创建网站
  • 网站收录提交入口官网西安千秋网络科技有限公司
  • o2o系统网站建设网站建设实训课
  • 网站右侧 回到顶部中国移动积分商城
  • 好看的商城网站设计广州网站建设网站
  • 东莞建设局门户网站网站上微信的链接怎么做
  • 公司网站建设和百度推广流程图抄袭别人网站的前端代码合法吗
  • j建设银行信用卡网站怎么建好网站
  • 营口门户网站建设成都市住房和城乡建设局网站
  • 做枪版视频网站犯法吗做内贸哪个网站好
  • 网站建设注册什么公司设计公司注册资金多少合适
  • 网站模板源码美食网站制作代码