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

ps做网站效果图房产网站cms

ps做网站效果图,房产网站cms,深圳做网站网络营销公司哪家好,做动态图网站有哪些1.图像分割概述 (1)What(什么是图像分割) 将图像划分为不同的子区域#xff0c;使得同一子区域具有较高的相似性#xff0c;不同的子区域具有明显的差异性 (2)Why(对图像进行分割有什么作用) 医学领域#xff1a;将不同组织分割成不同区域帮助分析病情军事领域#xff…1.图像分割概述 (1)What(什么是图像分割) 将图像划分为不同的子区域使得同一子区域具有较高的相似性不同的子区域具有明显的差异性 (2)Why(对图像进行分割有什么作用) 医学领域将不同组织分割成不同区域帮助分析病情军事领域通过对图像的分割为自动目标识别提供参数为飞行器或武器的精准导航提供依据遥感领域通过遥感图像分析城市地貌、作物生长情况。此外云系分析和天气预报都离不开图像分割交通领域车辆跟踪和车牌识别工业领域零部件分类、质量评估等 (3)Which(有哪些图像分割的方法) 基于阈值的分割方法利用灰度直方图得到分割的阈值利用这些阈值将图像分为几个部分核心思想是认为同一部分的像素是同一个物体。基于边缘的分割方法检测图像的边界以实现对图像的分割基于区域的分割方法核心思想是将有相似特性的像素集合起来构成区域将差异性较大的区域进行分裂基于神经网络的分割方法这里不多赘言现在很火…基于聚类的分割方法依据像素相似度使用聚类算法将像素划分为不同类别 2.基于阈值的分割 (1)固定阈值分割 将图像分为两个部分黑和白两个区域 /*author 还下着雨ZG * brief 固定阈值图像分割 * param[in] imSrc, 待分割的图像 * param[out] imSegment, 分割后的图像 * param[in] threVal, 输入的阈值 * return, 返回正整数表示图像分割成功负整数表示失败 **/ int ImgSegmentByGlbThreVal(const cv::Mat imSrc, cv::Mat imSegment, int threVal) {if(imSrc.empty()) return -1;if(threVal0 || threVal255) return -2;// 图像预处理cv::Mat imGray;if(imSrc.channels()1) imGray imSrc.clone();else if(imSrc.channels() 3){cv::cvtColor(imSrc, imGray, cv::COLOR_RGB2GRAY);}else{return -3;}cv::GaussianBlur(imGray, imGray, cv::Size(3,3), 0);//全局阈值法cv::threshold(imGray, imSegment, threVal);return 1; }阈值分割函数threshold的介绍 double cv::threshold(cv::Mat imSrc, //输入图像应该为单通道cv::Mat imDst, //分割后的图像大小和类型和imSrc相同double thresh, //表示阈值double maxval, //最大灰度值一般设为255int type //阈值化类型详细介绍如下所示};参数type的介绍type是一个枚举类型的数据 THRESH_BINARY 0, // ( x thresh ) ? 255 : 0 THRESH_BINARY_INV 1, // ( x thresh ) ? 0 : 255 THRESH_TRUNC 2, // ( x thresh ) ? thresh : x THRESH_TOZERO 3, // ( x thresh ) ? 0 : x THRESH_TOZERO 4, // ( x thresh ) ? x : 0 THRESH_MASK 7, THRESH_OTSU 8, // 自动处理图像自适应二值化常用区间【0-255】 (2)自适应阈值分割 根据图像不同区域的亮度分布计算局部阈值对于图像的不同区域能够自适应计算不同阈值 void cv::adaptiveThreshold(cv::Mat imSrc, //输入的源图像cv::Mat imDst, //输出图像double maxval, //预设满足条件的最大值int adaptMethod, //指定自适应阈值算法类型ADAPTIVE_MEAN_C或ADAPTIVE_THRESH_GAUSSIAN_C两种int threshType, //阈值类型THRESH_BINARY或THRESH_BINARY_INVint blockSize, //领域块的大小用于计算区域阈值357 ...double C, //与算法有关的参数是一个从均值或加权均值提取的常数可为负);使用adaptiveThresh /*author 还下着雨ZG * brief 自适应阈值图像分割 * param[in] imSrc, 待分割的图像 * param[out] imSegment, 分割后的图像 * return, 返回正整数表示图像分割成功负整数表示失败 **/ int ImgSegmentByAdpThre(const cv::Mat imSrc, cv::Mat imSegment) {if (imSrc.empty()) return -1;cv::Mat imGray;if (imSrc.channels() 1){cv::copyTo(imSrc, imGray, cv::Mat());}else if (imSrc.channels() 3){cv::cvtColor(imSrc, imGray, cv::COLOR_RGB2GRAY);}else{return -2;}cv::GaussianBlur(imGray, imGray, cv::Size(3, 3), 0);int blockSize 3;int constValue 0;cv::adaptiveThreshold(imGray, imSegment, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, blockSize,constValue);return 1; }在实际使用时大部分是先通过算子寻找边缘然后和区域生长融合来分割图像 3.基于区域的分割 有相似特性的像素集合起来构成区域将差异性较大的区域进行分裂 (1)分水岭算法 A.What分水岭算法的概念 将图像看作是测地学上的拓扑地貌每一个像素的灰度值表示该点的海拔高度每一个局部极小值及其影响区域被称为盆地对应得边界形成分水岭。 每一个局部极小值表面刺穿一个小孔然后从小孔浸水随着浸入的加深每一个局部极小值的影响域慢慢向外扩展两个盆地间形成分水岭。 opencv提供的分水岭算法原型如下 void cv::watershed(cv::Mat imBGR, //三通道8bit的彩色图像);B.How如何使用分水岭算法对图像进行分割 step01: 图像预处理灰度化、滤波去噪等step02: Canny边缘检测step03: 查找轮廓findContours函数查找轮廓并把轮廓信息按照不同编号绘制到watershed的第二次参数markers上相当于标记注水点step04: watershed分水岭算法调用step05: 绘制分割出来的区域 /*author 还下着雨ZG * param[in] imSrc, 输入的源图像 * param[in] imMarks, 输出图像分割之后的结果 * return, 正整数表示成功负整数表示失败 */ int ImgDvdWatershed(const cv::Mat imSrc, cv::Mat imMarks) {//step01 图像预处理灰度滤波cv::Mat imGray;cv::Mat imGray;if (imSrc.channels() 1){cv::copyTo(imSrc, imGray, cv::Mat());}else if (imSrc.channels() 3){cv::cvtColor(imSrc, imGray, cv::COLOR_RGB2GRAY);}else {return -1;}cv::GaussianBlur(imGray, imGray, cv::Size(3, 3), 2); //高斯滤波//Step02 Canny边缘检测cv::Mat imEdg(imGray.size(), CV_8UC1);cv::Canny(imGray, imEdg, 40, 110);//Step03 查找轮廓并绘制轮廓std::vectorstd::vectorcv::Point vCnts;std::vectorcv::Vec4i hierarchy;cv::findContours(imEdg, vCnts, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE);cv::Mat imContours;if (!imMarks.empty()){imMarks.release();}imMarks cv::Mat(imGray.size(), CV_32S, cv::Scalar::all(0));int iIdx 0;int compCount 0;for (; iIdx 0; iIdx hierarchy[iIdx][0], compCount){cv::drawContours(imMarks, vCnts, iIdx, cv::Scalar::all(compCount 1), 1, 8, hierarchy);cv::drawContours(imContours, vCnts, iIdx, cv::Scalar(255), 1, 8, hierarchy);}cv::Mat imRGB;if (imSrc.channels() 1){cv::cvtColor(imSrc, imRGB, cv::COLOR_GRAY2RGB);}else if (imSrc.channels() 3){imRGB imSrc.clone();}//Step04 调用分水岭算法cv::watershed(imRGB, imMarks);//marks既是输入参数又是输出参数imRGB.release();return 1; } 说明该函数输出参数imMarks图像同一区域用相同的数值标识分水岭用-1标识 (2)洪水填充法分割图像 该算法通常对边缘图像进行操作可用于分割出比较完整的外轮廓 int cv::floodFill(cv::Mat imSrc, //输入图像cv::Point seedPt, //填充的起始点cv::Scalar newVal, //填充的像素值cv::Rect *rect0, //将要重绘区域的最小边界矩形区域cv::Scalar loDiff cv::Scalar(), //像素值负差的最大值cv::Scalar upDiff cv::Scalar(), //像素值正差的最大值int flags 4 //操作标识符);
http://www.zqtcl.cn/news/832974/

相关文章:

  • 企业网站营销的优缺点Vs做的网站调试时如何适应网页
  • 策划案网站构成怎么写wordpress建个人博客
  • 自己做的网站别人怎么访问美容行业网站建设多少价格
  • 网站建设与运营 教材 崔海口个人建站模板
  • 做本地网站赚钱吗wordpress桌面宠物
  • 滁州市城市建设投资有限公司网站云服务器里面做网站播放器
  • 做yy头像的网站口碑营销案例简短
  • 卖灯杆的做网站好网页ip代理
  • 做网站开发工具哪个好网络协议分析课程设计报告
  • 如何进行营销型企业网站的优化网站开发有很多种吗
  • 卡片式设计网站营销培训课程视频
  • 网站rss地址生成wordpress 首页幻灯片
  • 网络营销软件专业网站优化方案
  • 展览公司网站建设方案深圳正规做网站的公司
  • 网站做关键词首页淮南网站建设报价
  • 西山区城市建设局网站网页浏览器的英文缩写
  • 个人网站怎么做内容比较好昆明网站制作企业
  • 婚嫁网站建设计划专业 网站建设
  • 成品免费ppt网站做网站玩玩
  • 怎么给网站做seo优化网站的主页按钮怎么做的
  • 蓬莱做网站公司wordpress 加微信号
  • 建设网站如何优化关键词鞍山网站制作招聘网
  • 公司的网站是什么wordpress禁止s.w.org
  • 什么网站做蜘蛛池广渠门做网站的公司
  • 网站建设公司一年多少钱网站建设高校
  • 网站建设以及seo报告的格式
  • 如何做网站免费搭桥链接网站建设使用的什么软件
  • html 门户网站怎么根据网站做二维码
  • 网站增加新闻功能建设境外网站需要什么手续
  • 做产品设计之前怎么查资料国外网站怀化政法网站