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

互联网建网站线下推广方案

互联网建网站,线下推广方案,淘宝上做网站排名,网站如何做的有特色第三节 图像颜色处理 1.颜色比较2.GrabCut分割图像3.色调、饱和度以及亮度 1.颜色比较 主要实现逐像素的颜色比较,其中注意BGR颜色空间不连续,不利于颜色提取和区分,转换到Lab空间: int getColorDistance(const cv::Vec3b& c…

第三节 图像颜色处理

  • 1.颜色比较
  • 2.GrabCut分割图像
  • 3.色调、饱和度以及亮度

1.颜色比较

主要实现逐像素的颜色比较,其中注意BGR颜色空间不连续,不利于颜色提取和区分,转换到Lab空间:

	  int getColorDistance(const cv::Vec3b& color1, const cv::Vec3b& color2) const {// 方法一return abs(color1[0]-color2[0])+abs(color1[1]-color2[1])+abs(color1[2]-color2[2]);// 方法二return static_cast<int>(cv::norm<int,3>(cv::Vec3i(color[0]-color2[0],color[1]-color2[1],color[2]-color2[2])));// 方法三 直接使用函数cv::Vec3b dist;cv::absdiff(color,color2,dist);return cv::sum(dist)[0];}// 使用指针遍历图像进行颜色比较Mat process(const Mat &image) {// same size as input image, but 1-channelresult.create(image.size(),CV_8U);// Converting to Lab color space  if (useLab)cv::cvtColor(image, converted, cv::COLOR_BGR2Lab);// get the iteratorsMat_<cv::Vec3b>::const_iterator it= image.begin<Vec3b>();Mat_<cv::Vec3b>::const_iterator itend= image.end<Vec3b>();Mat_<uchar>::iterator itout= result.begin<uchar>();// get the iterators of the converted image if (useLab) {it = converted.begin<cv::Vec3b>();itend = converted.end<cv::Vec3b>();}// 指针遍历for ( ; it!= itend; ++it, ++itout) {// compute distance from target colorif (getDistanceToTargetColor(*it)<maxDist) {*itout= 255;} else {*itout= 0;}// end of pixel processing ----------------}return result;
}

2.GrabCut分割图像

floodFill函数,支持用户选择种子点,opencv依据差异值进行快速处理,比如office中的设置透明色,就类似于该算法的实现

	// testing floodfillcv::floodFill(image,            // input/ouput imagecv::Point(100, 50),         // seed pointcv::Scalar(255, 255, 255),  // repainted color(0,0,0)则是黑色(cv::Rect*)0,  // bounding rectangle of the repainted pixel setcv::Scalar(35, 35, 35),     // low and high difference thresholdcv::Scalar(35, 35, 35),     // most of the time will be identicalcv::FLOODFILL_FIXED_RANGE); // pixels are compared to seed colorcv::namedWindow("Flood Fill result");result = colordetector(image);

GrabCut分割图像通过用户标记前景框,算法为2004年提出,主要是将图像依据颜色相似进行图块分割,然后再使用边缘特征进一步分割,将问题转化为连通图的合并问题,最后以四种类型作为结果输出

	// define bounding rectangle cv::Rect rectangle(50,25,210,180);// the models (internally used)cv::Mat bgModel,fgModel; // segmentation resultcv::Mat result; // segmentation (4 possible values)// GrabCut segmentationcv::grabCut(image,    // input imageresult,   // segmentation resultrectangle,// rectangle containing foreground bgModel, fgModel, // models5,        // number of iterationscv::GC_INIT_WITH_RECT); // use rectangle// Get the pixels marked as likely foreground GC_PR_FGD有四种不同分类结果cv::compare(result,cv::GC_PR_FGD,result,cv::CMP_EQ);// or://	result= result&1;

两种方法对比图下,GrabCut能够有效保留前景要素边缘特征
在这里插入图片描述
最终基于边框提取前景要素:
在这里插入图片描述

3.色调、饱和度以及亮度

将图像转换到连续空间Lab进行处理往往可以获得更为连续的结果,而HSV颜色表示更加符合人类视觉感知

cv::cvtColor(image, hsv, cv::COLOR_BGR2HSV);
cv::cvtColor(hsv,newImage, cv::COLOR_HSV2BGR);
cv::cvtColor(image,brightness, cv::COLOR_Lab2BGR);void detectHScolor(const cv::Mat& image,		// input image double minHue, double maxHue,	// Hue interval double minSat, double maxSat,	// saturation intervalcv::Mat& mask) {				// output mask// convert into HSV spacecv::Mat hsv;cv::cvtColor(image, hsv, cv::COLOR_BGR2HSV);// split the 3 channels into 3 imagesstd::vector<cv::Mat> channels;cv::split(hsv, channels);// channels[0] is the Hue// channels[1] is the Saturation// channels[2] is the Value// Hue maskingcv::Mat mask1; // below maxHuecv::threshold(channels[0], mask1, maxHue, 255, cv::THRESH_BINARY_INV);cv::Mat mask2; // over minHuecv::threshold(channels[0], mask2, minHue, 255, cv::THRESH_BINARY);cv::Mat hueMask; // hue maskif (minHue < maxHue)hueMask = mask1 & mask2;else // if interval crosses the zero-degree axishueMask = mask1 | mask2;// Saturation masking// below maxSatcv::threshold(channels[1], mask1, maxSat, 255, cv::THRESH_BINARY_INV);// over minSatcv::threshold(channels[1], mask2, minSat, 255, cv::THRESH_BINARY);cv::Mat satMask; // saturation masksatMask = mask1 & mask2;// combined maskmask = hueMask&satMask;
}

诸如人体皮肤再HSV颜色域中具有显著的特征
在这里插入图片描述

该节相关代码已上传到个人文档,按需下载链接: 点击下载

http://www.dtcms.com/wzjs/46217.html

相关文章:

  • 同仁行业网站建设报价百度搜索指数1000是什么
  • 专业做网站建设公淘宝一个关键词要刷多久
  • 目前网站开发技术宁波seo网络推广
  • 做的网站浏览器提示不安全问题百度下载app下载安装到手机
  • 那个网站做图片宣传推广图片
  • 自己接单做网站武汉大学人民医院院长
  • 张家港杨舍网站建设谷歌三件套下载
  • 做网站的怎么学小程序开发需要哪些技术
  • 移动端网站模板怎么做免费推广网站2023mmm
  • 厦门做网站哪家强网络游戏推广员是做什么的
  • 汉口做网站的公司百度投稿平台
  • 国内网站开发语言深圳百度推广代理商
  • 做的网站在ie会乱码泰州网站排名seo
  • 四大软件外包公司东莞网站seo公司哪家大
  • 网站建设 技术团队网络营销的方式和方法
  • 济南网站建设策划方案网络营销的五大优势
  • 什么网站做免单衣服网页设计模板html代码
  • 公司网站优化推广方案外链互换平台
  • 临淄网站建设郑州seo顾问外包
  • 淮南市网站开发的方式查图百度识图
  • 如何查看网站域名解析网站seo在线优化
  • 外国网站上做Task在线种子资源网
  • qq可以做公司免费网站百度推广每年600元什么费用
  • 阿里云学生wordpress百度seo点击工具
  • 网站smtp服务器邯郸网站建设优化
  • 南京网站建设包括哪些爱站网长尾关键词挖掘工具电脑版
  • 企业为什么需要网站seo整站优化报价
  • 国家现代农业示范区建设网站境外电商有哪些平台
  • Wix做的网站在国内打不开太原互联网推广公司
  • 网站建设公司中心好搜自然seo