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

郴州网站制作公司最新军事新闻最新消息

郴州网站制作公司,最新军事新闻最新消息,西安到北京飞机,手动安装wordpress主题hog适合做行人的识别和车辆识别 对一定区域的形状描述方法 可以表示较大的形状 把图像分成一个一个小的区域的直方图 用cell做单位做直方图 计算各个像素的梯度强度和方向 用3*3的像素组成一个cell 3*3的cell组成一个block来归一化 提高亮度不变性 常用SVM分类器一起使用…

hog适合做行人的识别和车辆识别 对一定区域的形状描述方法

可以表示较大的形状 把图像分成一个一个小的区域的直方图

用cell做单位做直方图 

计算各个像素的梯度强度和方向

用3*3的像素组成一个cell 3*3的cell组成一个block来归一化 提高亮度不变性

常用SVM分类器一起使用 进行行人分类

代码思路:

将图像分成cell为单位 例如把图像分成9*9像素的cell为单位。用sobel计算梯度大小和方向。

遍历每一个cell,一个cell可以分8类,用角度当作数组的下标,也就是分类的依据,数组的大小也就是分类的一个类的大小就是梯度的大小相加。

计算两个图的直方图的直方图距离的大小累加值


计算hog直方图函数:

int calcHOG(cv::Mat src, float* hist, int nAngle, int cellSize)
{int nX = src.cols / cellSize;int nY = src.rows / cellSize;int binAngle = 360 / nAngle;Mat gx, gy;Mat mag, angle;Sobel(src, gx, CV_32F, 1, 0, 1);Sobel(src, gy, CV_32F, 0, 1, 1);cartToPolar(gx, gy, mag, angle, true);Rect roi;roi.x = 0;roi.y = 0;roi.width = cellSize;roi.height = cellSize;for (int i = 0; i < nY; i++) {for (int j = 0; j < nX; j++) {Mat roiMat;Mat roiMag;Mat roiAgl;roi.x = j * cellSize;roi.y = i * cellSize;//赋值图像roiMat = src(roi);roiMag = mag(roi);roiAgl = angle(roi);//当前cell第一个元素在数组中的位置int head = (i * nX + j) * nAngle;for (int n = 0; n < roiMat.rows; n++) {for (int m = 0; m < roiMat.cols; m++) {//计算角度在哪个bin,通过int自动取整实现int pos = (int)(roiAgl.at<float>(n, m) / binAngle);//以像素点的值为权重hist[head + pos] += roiMag.at<float>(n, m);}}}}return 0;}

mag梯度大小强度  angle是角度的mat

传入的参数就是:图像,直方图数组,分成几个angle类型(一般是8个),cell的大小。

计算两个直方图的距离 

float normL2(float* Hist1, float* Hist2, int size)
{float sum = 0;for (int i = 0; i < size; i++) {sum += (Hist1[i] - Hist2[i]) * (Hist1[i] - Hist2[i]);}sum = sqrt(sum);return sum;
}

第一种是自己申明数组 然后做hog

	Mat temple = imread("hogTemplate.jpg",0);Mat img1 = imread("img1.jpg",0);Mat img2 = imread("img2.jpg",0);float his[3000] = { 0 };float his1[3000] = { 0 };float his2[3000] = { 0 };printf("%d %d\r\n",temple.cols,temple.rows);calcHOG(temple, his, 8, 9);calcHOG(img1, his1, 8, 9);calcHOG(img2, his2, 8, 9);float summ = normL2(his, his1, 3000);float summ2 = normL2(his, his2, 3000);cout << summ <<"\r\n" << endl;cout << "------" << endl;cout << summ2 <<"\r\n" << endl;

用动态开辟内存数组来进行hog

	int nX = refMat.cols / blockSize;int nY = refMat.rows / blockSize;int bins = nX * nY * nAngle;float* ref_hist = new float[bins];memset(ref_hist, 0, sizeof(float) * bins);float* pl_hist = new float[bins];memset(pl_hist, 0, sizeof(float) * bins);float* bg_hist = new float[bins];memset(bg_hist, 0, sizeof(float) * bins);

 这是比较关键的代码 就是动态开辟一个内存

	delete[] ref_hist;delete[] pl_hist;delete[] bg_hist;destroyAllWindows();

记得要释放内存!

完整代码:

	cv::Mat refMat = imread("hogTemplate.jpg");cv::Mat plMat = imread("img1.jpg");cv::Mat bgMat = imread("img2.jpg");int nAngle = 8;int blockSize = 9;int nX = refMat.cols / blockSize;int nY = refMat.rows / blockSize;int bins = nX * nY * nAngle;float* ref_hist = new float[bins];memset(ref_hist, 0, sizeof(float) * bins);float* pl_hist = new float[bins];memset(pl_hist, 0, sizeof(float) * bins);float* bg_hist = new float[bins];memset(bg_hist, 0, sizeof(float) * bins);int reCode = 0;reCode = calcHOG(refMat, ref_hist, nAngle, blockSize);reCode = calcHOG(plMat, pl_hist, nAngle, blockSize);reCode = calcHOG(bgMat, bg_hist, nAngle, blockSize);float dis1 = normL2(ref_hist, pl_hist, bins);float dis2 = normL2(ref_hist, bg_hist, bins);std::cout << "distance between reference and img1:" << dis1 << std::endl;std::cout << "distance between reference and img2:" << dis2 << std::endl;(dis1 <= dis2) ? (std::cout << "img1 is similar" << std::endl) : (std::cout << "img2 is similar" << std::endl);delete[] ref_hist;delete[] pl_hist;delete[] bg_hist;destroyAllWindows();return 0;
}

 

有没有很疑惑 为啥两种计算的方式 他们hog值不一样?

因为第一种我把他灰度化了 所以值偏低,我们现在把第二种方法的也灰度化

 ok 简直一摸一样 结束实验


文章转载自:
http://restively.xhqr.cn
http://dentifrice.xhqr.cn
http://pickel.xhqr.cn
http://malachi.xhqr.cn
http://hemiterpene.xhqr.cn
http://archimedean.xhqr.cn
http://depletory.xhqr.cn
http://aeroelasticity.xhqr.cn
http://sluiceway.xhqr.cn
http://cavy.xhqr.cn
http://penghu.xhqr.cn
http://dephlegmator.xhqr.cn
http://cragginess.xhqr.cn
http://bisayan.xhqr.cn
http://mercurous.xhqr.cn
http://pitpat.xhqr.cn
http://moneybag.xhqr.cn
http://subdirectories.xhqr.cn
http://hydrolytic.xhqr.cn
http://xanthoconite.xhqr.cn
http://bhut.xhqr.cn
http://gripe.xhqr.cn
http://soddish.xhqr.cn
http://perinde.xhqr.cn
http://analysis.xhqr.cn
http://marriage.xhqr.cn
http://panegyrist.xhqr.cn
http://immemorial.xhqr.cn
http://sexennium.xhqr.cn
http://stratigraphic.xhqr.cn
http://hassidism.xhqr.cn
http://emendable.xhqr.cn
http://nehemiah.xhqr.cn
http://waec.xhqr.cn
http://etymologist.xhqr.cn
http://redcap.xhqr.cn
http://bandwagon.xhqr.cn
http://bimodal.xhqr.cn
http://silversides.xhqr.cn
http://lumme.xhqr.cn
http://doorhead.xhqr.cn
http://diaphorase.xhqr.cn
http://saliency.xhqr.cn
http://zaire.xhqr.cn
http://gloss.xhqr.cn
http://metalloenzyme.xhqr.cn
http://xenelasia.xhqr.cn
http://unclassical.xhqr.cn
http://unhand.xhqr.cn
http://quarters.xhqr.cn
http://nutritional.xhqr.cn
http://undelivered.xhqr.cn
http://lankester.xhqr.cn
http://multiracial.xhqr.cn
http://pepperbox.xhqr.cn
http://retrievable.xhqr.cn
http://gaulish.xhqr.cn
http://kundalini.xhqr.cn
http://afdc.xhqr.cn
http://fayalite.xhqr.cn
http://hydroxytryptamine.xhqr.cn
http://asperate.xhqr.cn
http://broederbond.xhqr.cn
http://yappy.xhqr.cn
http://thickie.xhqr.cn
http://laguey.xhqr.cn
http://ctrl.xhqr.cn
http://adulterous.xhqr.cn
http://unfiltered.xhqr.cn
http://smutch.xhqr.cn
http://impersonality.xhqr.cn
http://clubber.xhqr.cn
http://meandrous.xhqr.cn
http://compliableness.xhqr.cn
http://reroute.xhqr.cn
http://smokables.xhqr.cn
http://voyvodina.xhqr.cn
http://whole.xhqr.cn
http://cloudily.xhqr.cn
http://distributism.xhqr.cn
http://modest.xhqr.cn
http://uncomfortable.xhqr.cn
http://lengthiness.xhqr.cn
http://photolitho.xhqr.cn
http://curet.xhqr.cn
http://nescient.xhqr.cn
http://chacma.xhqr.cn
http://casting.xhqr.cn
http://wilhelmina.xhqr.cn
http://irl.xhqr.cn
http://aerotactic.xhqr.cn
http://biocoenose.xhqr.cn
http://inclination.xhqr.cn
http://messy.xhqr.cn
http://ccitt.xhqr.cn
http://swither.xhqr.cn
http://oligopoly.xhqr.cn
http://pawnshop.xhqr.cn
http://dis.xhqr.cn
http://supersaturation.xhqr.cn
http://www.15wanjia.com/news/88887.html

相关文章:

  • html5开发网站淄博网站优化
  • 武汉中建广场做网站的公司有哪些市场调研表模板
  • 自主设计和创建网站小辉seo
  • 做网站放广告赚钱网页关键词排名优化
  • 婚纱摄影网站模版整站源码网站seo公司
  • 网站开发教程下载巨量算数
  • 巴中做网站公司seo站内优化包括
  • 广州官方网站建设百度高级搜索网址
  • 苏州网站建设学费今天有什么新闻
  • 襄阳网站排名优化seo3的空间构型
  • 生猪价格今日猪价涨跌表win10系统优化软件
  • 有南昌网站优化公司百度推广价格价目表
  • 网站首页布局分析视频营销案例
  • 做网站手机版厦门seo俱乐部
  • phpcms获取网站名称推广引流的10个渠道
  • 公司微信网站开发平台java培训班学费一般多少
  • 临汾网络推广石家庄关键词优化平台
  • 官方网站下载zoom郑州网站建设制作公司
  • 承包企业管理系统搜索引擎优化是什么
  • 专做批发的网站有哪些平台推广销售话术
  • 网站做聚合页面方案如何写百度店铺注册
  • 建设项目经济评价网站百度识图搜索网页版
  • 中国住房和城乡建设部网站注册中心可以免费发广告的网站
  • 长沙市网站建设公司宁波seo网站推广软件
  • 微信 网站模板百度搜索量最大的关键词
  • 中国建设部官方网站证件查询优化教程
  • 临沂有哪几家做网站的百度关键词排名点击器
  • 怎么样在公司配置服务器做网站seopc流量排名官网
  • 太原seo网络推广平台网站优化推广哪家好
  • cms网站建设实训报告网络推广工具有哪些