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

谷歌英文网站百度搜索关键词热度

谷歌英文网站,百度搜索关键词热度,英文网站怎么做seo,杭州知名的企业网站建设策划1.图像直方图 1.1.像素统计 计算图像均值: Scalar cv::mean(InputArray src,InputArray masknoArray()); src:输入图像mask:掩膜层过滤 返回值是对输入图像通道数计算均值后的Scalar对象 计算图像均值与方差: void cv::meanSt…

1.图像直方图

1.1.像素统计

计算图像均值:

Scalar cv::mean(InputArray src,InputArray mask=noArray());

  • src:输入图像
  • mask:掩膜层过滤

返回值是对输入图像通道数计算均值后的Scalar对象

计算图像均值与方差:

void cv::meanStdDev(InputArray src,OutputArray mean,OutputArray stddev,InputArray mask=noArray());

  • src:输入图像
  • mean:输出图像通道的均值
  • stddev:输出图像通道的方差
  • mask:掩膜层

查找最大值和最小值及其位置:

double cv::minMaxLoc(InputArray src, OutputArray minVal, OutputArray maxVal, OutputArray minLoc, OutputArray maxLoc, InputArray mask = noArray());

  • src:输入图像或矩阵,可以是单通道、多通道或彩色图像。
  • minVal:输出参数,指向一个double类型的指针,用于存储计算得到的最小值。
  • maxVal:输出参数,指向一个double类型的指针,用于存储计算得到的最大值。如果不提供此参数,则默认为0。
  • minLoc:输出参数,指向一个Point类型的指针,用于存储计算得到的最小值的位置。如果不提供此参数,则默认为0。
  • maxLoc:输出参数,指向一个Point类型的指针,用于存储计算得到的最大值的位置。如果不提供此参数,则默认为0。
  • mask:可选参数,输入图像或矩阵,用于指定感兴趣区域。只有位于mask内的像素才会被计算最小值和最大值。如果不提供此参数,则默认为noArray()。

1.2.直方图计算和绘制

void calcHist(const Mat* images,             //输入的数组或数据集int nimages,                   //输入数组的个数const int* channels,           //需要统计的通道(dim)索引    InputArray mask,               //可选的操作掩码,用于标记出统计直方图的数组元素数据OutputArray hist,              //输出的目标直方图    int dims,                      //需要计算的直方图的维数const int* histSize,           //存放每个直方图尺寸的数组const float** ranges,          //每一维数值的取值范围bool uniform = true,           //指示直方图是否均匀的标识符bool accumulate = false        //累计标识符,主要是允许多从多个阵列中计算单个直方图,或者用于在特定的时间更新直方图。
)

  • 第一个参数:const Mat* 类型的 iamges,输入的数组(或数据集),它们需为相同的深度(CV_8U 或 CV_32F)和相同的尺寸。
  • 第二个参数:int 类型的 nimages,输入数组的个数,也就是第一个参数中存放了多少张 “图像”,有几个原数组。
  • 第三个参数:const int* 类型的 channels,需要统计的通道(dim)索引。第一个数组通道从 0 到 images[0].channels() - 1,而第二个数组通道从 images[0].channels() 计算到 images[0].channels() + images[1].channels() - 1。
  • 第四个参数:InputArray 类型的 mask,可选的操作掩码。如果此掩码不为空,那么它必须为 8 位,并且与 images[i] 有同样的大小和尺寸。这里的非零掩码元素用于标记出统计直方图的数组元素数据。
  • 第五个参数:OutputArray 类型的 hist,输出的目标直方图,一个二维数组。
  • 第六个参数:int 类型的 dims,需要计算的直方图的维数,必须是正数,且不大于 CV_MAX_DIMS(在 OpenCV3 中等于 32)。
  • 第七个参数:const int* 类型的 histSize,存放每个维度的直方图尺寸的数组。
  • 第八个参数:const float** 类型的 ranges,表示每一个维度数组(第六个参数 dims)的每一维的边界阵列,可以理解为每一维数值的取值范围。
  • 第九个参数:bool 类型的 uniform,指示直方图是否均匀的标识符,有默认值 true。
  • 第十个参数:bool 类型的 accumulate,累计标识符,有默认值 false。若其为 true,直方图在配置阶段不会被清零。此功能主要是允许多从多个阵列中计算单个直方图,或者用于在特定的时间更新直方图。

绘制H-S直方图

#include<opencv2/opencv.hpp>
#include<time.h>
#include<iostream>using namespace std;
using namespace cv;int main() {system("color 2F");//载入原图,转化为 HSV 颜色模型Mat srcImage, hsvImage;srcImage = imread("1.jpg");cvtColor(srcImage, hsvImage, COLOR_BGR2HSV);//将色调量化为 30 个等级,将饱和度量化为 32 个等级int hueBinNum = 30;     //色调的直方图直条数量int saturationBinNum = 32;      //饱和度的直方图直条数量int histSize[] = { hueBinNum,saturationBinNum };//定义色调的变化范围为 0 到 179float hueRanges[] = { 0,180 };//定义饱和度的变化范围为 0(黑、白、灰)到 255(纯光谱颜色)float saturationRanges[] = { 0,256 };const float* ranges[] = { hueRanges,saturationRanges };MatND dstHist;  //Mat 一般指二维矩阵,MatND 指多维矩阵( > 2 )//calcHist 函数中将计算第 0 通道和第 1 通道的直方图int channels[] = { 0,1 };//正式调用 calcHist ,进行直方图计算calcHist(&hsvImage,  //输入的数组1,      //数组个数为 1channels,   //通道索引Mat(),      //不使用掩膜dstHist,    //输出的目标直方图2,      //需要计算的直方图的维度为 2histSize,   //存放每个维度的直方图尺寸的数组ranges,     //每一维数值的取值范围数组true,       //指示直方图是否均匀的标识符,true 表示均匀的直方图false       //累计标识符,false 表示直方图在配置阶段会被清零);//为绘制直方图准备参数double  maxValue = 0;   //最大值//查找数组和子数组的全局最小值和最大值存入 maxValue 中minMaxLoc(dstHist, 0, &maxValue, 0, 0); int scale = 10;     //直方图放大倍数Mat histImage = Mat::zeros(saturationBinNum * scale, hueBinNum * 10, CV_8UC3);//双重循环,实现直方图绘制for (int hue = 0; hue < hueBinNum; hue++) {for (int saturation = 0; saturation < saturationBinNum; saturation++) {//直方图直条的值float binValue = dstHist.at<float>(hue, saturation);int intensity = cvRound(binValue * 255 / maxValue);     //强度//正式进行绘制rectangle(histImage,Point(hue * scale, saturation * scale),Point((hue + 1) * scale - 1, (saturation + 1) * scale - 1),Scalar::all(intensity),FILLED);}}imshow("素材图", srcImage);imshow("H-S 直方图", histImage);waitKey(0);return 0;
}

绘制一维直方图

#include<opencv2/opencv.hpp>
#include<time.h>
#include<iostream>using namespace std;
using namespace cv;int main() {system("color 2F");Mat srcImage = imread("1.jpg", 0);imshow("原图", srcImage);if (!srcImage.data) {printf("图像读取失败!");return 0;}MatND dstHist;int dims = 1;float hranges[] = { 0,255 };const float *ranges[] = { hranges };    //这里需为 const 类型 int size = 256;int channels = 0;//计算图像的直方图calcHist(&srcImage, 1, &channels, Mat(), dstHist, dims, &size, ranges);int scale = 1;Mat dstImage(size * scale, size, CV_8U, Scalar(0));//获取最大值和最小值double minValue = 0;double maxValue = 0;minMaxLoc(dstHist, &minValue, &maxValue, 0, 0);//绘制出直方图int hpt = saturate_cast<int>(0.9 * size);for (int i = 0; i < 256; i++) {float binValue = dstHist.at<float>(i);  //注意 hist 中是 float 类型int realValue = saturate_cast<int>(binValue * hpt / maxValue);rectangle(dstImage, Point(i * scale, size - 1), Point((i + 1) * scale - 1, size - realValue), Scalar(255)); }imshow("一维直方图", dstImage);waitKey(0);return 0;
}

1.3.直方图均衡化

void cv::equalizeHist(

        InputArray src,//输入图像

        OutputArray dst//输出图像

)

1.4.直方图比较

double cv::campareHist( InputArray H1, InputArray H2, int method )

H1和H2是两个直方图数据,method表示衡量直方图数据相似性的计算方法。

  • HISTCMP_CORREL:相关性相似比较
  • HISTCMP_CHISQP:卡方相似比较
  • HISTCMP_INTERSECT:交叉相似比较
  • HISTCMP_BHATTACHARYYA:巴氏距离相似比较
  • HISTCMP_HELLINGER:海林格距离相似比较,与巴氏距离相似比较相同
  • HISTCMP_CHISQR_ALT:可变卡方相似比较
  • HISTCMP_KL_DIV:基于KL散度相似比较

对相关性相似比较与交叉相似比较方法来说,直方图数据相似度越低,值就越低;而对卡方相似比较与巴氏距离相似比较方法来说,直方图数据相似度越低,值就越高;其中巴氏距离相似比较方法的取值范围是[0,1],0表示完全相同,1表示完全

1.5.直方图反向投影

void cv::calcBackProject(const Mat *images,        //输入图像int nimages,              //输入图像数量const int *channels,      //不同图像的索引通道,编号从0开始InputArray hist,          //输入的模板直方图数据OutputArray backProject,  //反向投影后的输出const float **ranges,     //通道的取值范围double scale=1,           //输出数据的缩放,1表示保持原值bool uniform=true         //表示一致性,对边界数据的处理方式,取值为false表示不处理
)

2.图像平滑操作

2.1.均值滤波

void blur( InputArray src, OutputArray dst,Size ksize, Point anchor = Point(-1,-1),int borderType = BORDER_DEFAULT 
);参数说明:
参数1:被处理的图像
参数2:均值滤波处理之后的图像
参数3:滤波核大小,其格式为(高度,宽度),建议使用(3,3),(5,5),(7,7)等 宽、高相等的奇数边长。滤波核越大,处理之后的图像越模糊
参数4:滤波核的锚点,建议采用默认值,可以自动计算锚点
参数5:边界样式,建议采用默认值

2.2.高斯滤波

void GaussianBlur( InputArray src, OutputArray dst, Size ksize,double sigmaX, double sigmaY = 0,int borderType = BORDER_DEFAULT 
);参数说明:
参数1:待处理的图像
参数2:高斯滤波处理之后的图像
参数3:滤波核的大小,宽高必须是奇数,与均值滤波相同
参数4:卷积核水平方向的标准差,建议填0,会根据滤波核的大小自动计算合适的权重比例
参数5:卷积核垂直方向的标准差,建议填0,会根据滤波核的大小自动计算合适的权重比例
参数6:边界样式,建议使用默认值

2.3.中值滤波

void medianBlur( InputArray src, OutputArray dst, int ksize );参数说明:
参数1:待处理的图像
参数2:中值滤波处理后的图像
参数3:滤波核大小,其值表示边长,必须是大于1的奇数 3,5,7等

2.4.双边滤波

void bilateralFilter( InputArray src, OutputArray dst, int d,double sigmaColor, double sigmaSpace,int borderType = BORDER_DEFAULT 
);参数说明:
参数1:待处理的图像
参数2:双边滤波处理后的图像
参数3:以当前像素为中心的整个滤波区域的直径。如果d<0,则自动根据sigmaSpace参数 计算得到。该值与保留的边缘信息数量成正比,与方法运行效率成反比
参数4:参与计算的颜色范围,这个值是像素颜色值与周围颜色值的最大差值,只有颜色值 之差小于这个值时,周围的像素才进行滤波计算。值为255时,表示所有颜色都参与计算
参数5:坐标空间的σ(sigma)值,该值越大,参与计算的像素数量就越多
参数6:边界样式,建议默认值

http://www.wangmingla.cn/news/166515.html

相关文章:

  • 网站备案期间做网页aso优化前景
  • 深圳新闻类网站的建设今天最新的新闻头条新闻
  • 什么网站百度容易收录如何做营销
  • wordpress调用副标题搜索引擎优化趋势
  • 南昌建设局网站查询塔吊证酒店机票搜索量暴涨
  • 物联网网站的建设和维护百度seo排名优化助手
  • linux 网站配置app推广方案怎么写
  • php 跳转到其他网站百度推广开户代理
  • 怎么做页眉宁波seo网络优化公司
  • 做淘宝代理哪个网站好做百度推广一个月多少钱
  • 我国酒店网站建设存在的问题百度推广充值必须5000吗
  • 弹性web做网站好不好百度一下百度知道
  • 用微信小程序怎么做网站推广引流渠道有哪些
  • 网站建设上市公司百度云盘搜索
  • 现货交易平台有哪些超级seo外链
  • 买了个域名 如何自己做网站恶意点击推广神器
  • 网站互动方式杭州网站推广与优化
  • 南宁网站建设 超薄网络有没有专门帮人推广的公司
  • 深圳做微信网站设计公司如何在百度宣传
  • 张家界市建设工程造价管理站网站阿里云万网域名查询
  • 深圳工业设计培训班宁波seo服务
  • 建设生鲜网站价格表seo外包公司需要什么
  • 网站管理系统下载免费域名注册平台有哪些
  • 夷陵区住房和城乡建设局网站网站服务公司
  • 中企动力科技股份有限公司做网站百度搜索排名优化哪家好
  • 重庆点优定制网站建设自己建立网站步骤
  • 营销型网站建设标准得物app的网络营销分析论文
  • 政府网站建设规范及标准百度营销登录
  • 两台电脑一台做服务器 网站网站注册要多少钱
  • 软件开发是学什么台州专业关键词优化