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

网站建设创业职业技能培训学校

网站建设创业,职业技能培训学校,通州建设网站,一家做特卖的网站手机版前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

前言

😊😊😊欢迎来到本博客😊😊😊

🌟🌟🌟 本专栏主要结合OpenCV和C++来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快速查询等,随时更新。

😊😊😊 具体食用方式:可以点击本专栏【OpenCV快速查找(更新中)】–>搜索你要查询的算子名称或相关知识点,或者通过这篇博客👉通俗易懂OpenCV(C++版)详细教程——OpenCV函数快速查找(不断更新中)]查阅你想知道的知识,即可食用。

🎁🎁🎁支持:如果觉得博主的文章还不错或者您用得到的话,可以悄悄关注一下博主哈,如果三连收藏支持就更好啦!这就是给予我最大的支持!😙😙😙


文章目录

    • 学习目标
    • 一、概念及原理
      • 1.1 相关概念及原理
      • 1.2 实现步骤
      • 1.3 应用场景
    • 二、 代码实现
    • 三、 总结

学习目标

  • 熟悉全局直方图均衡化概念及原理
  • C++实现全局直方图均衡化案例

  上一节伽马变换在提升对比度上有比较好的效果,但是需要手动调节γ值这节将介绍更为方便的方法自动调节图像对比度——全局直方图均衡化

一、概念及原理

1.1 相关概念及原理

  假设输入图像为I,高为H、宽为W,histI 代表I的灰度直方图,histI (k)代表灰度值为k(0≤k≤255)的像素个数。全局直方图均衡化操作是对图像I进行改变,使得输出图像O的灰度直方图histO是“平”的,即每一个灰度级的像素点个数是“相等”的
  注意:其实这里的“相等”不是严格意义上的等于,而是约等于,比如高为100、宽为255的图像矩阵不可能出现每一个灰度级的像素点个数是严格相等的,即:

  对于任意的灰度级p,0≤p≤255,总能找到q,0≤q≤255,使得:

  也称为IO的累加直方图。因为:

  所以:
  即:

  上面给出了一个从亮度级为p的输入像素到亮度级为q的输出像素的映射,那么令

  其中I(r,c)I的第r行第c列的灰度值,O(r,c)是对应位置输出的灰度值,其中0≤r≤H,0≤c≤W这样就计算出了输出图像O的每一个位置的灰度值

1.2 实现步骤

  首先,直观感受直方图均衡化效果。左边是原始的直方图,右边是均衡化以后的结果。

  对于直方图均衡化的实现主要分四个步骤:

  第一步:计算图像的灰度直方图并归一化

第二步:计算灰度直方图的累加直方图。

第三步:根据累加直方图和直方图均衡化原理得到输入灰度级和输出灰度级之间的映射关系。

第四步:根据第三步得到的灰度级映射关系,循环得到输出图像的每一个像素的灰度级。

1.3 应用场景

  直方图均衡化的应用常见很广泛:医疗图像、人脸识别、车牌识别等等。直方图均衡化以后,色彩更丰富。看起来能够描述出更多的信息。否则图像过亮或者过暗或者色彩集中在某个区域,不好区分细节。
  比如一些CT的图像,过暗。车牌识别也是,在光线不好的地方,车牌特别暗。闪光灯抓拍的,又太亮了。人脸识别也一样。


二、 代码实现

  OpencvCV提供了实现的直方图均衡化函数equalizeHist(),具体如下:

void equalizeHist(InputArray src, OutputArray dst)

  src为要均衡的输入图像,必须是8bit单通道图像,即灰度图
  dst是原图像大小相等经过直方图均衡处理后的输出图像,参数dst可以不传入

  除了理解简单的函数,equalizeHist()函数原理我们应该也要简单熟悉一下:

#include <iostream>
#include <opencv2/opencv.hpp> 
# include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv ;Mat equalHist (Mat image){CV_ Assert (image.type() == CV_8UC1) ;//获取图像宽高int rows = image.rows;int cols = image.cols;//第一步:计算图像灰度直方图Mat grayHist = calcGrayHist(image);//第二步:计算累加灰度直方图Mat zeroCumuMoment = Mat::zeros(Size(256, 1),CV_ 32SC1);for(intp=0;p<256;p++){if (p==0){zeroCumuMoment.at<int>(0, p) = grayHist.at<int>(0, 0);}elsezeroCumuMoment.at<int>(0, p) = zeroCumuMoment.at<int>(0, p-1) + grayHist.at<int>(0, p);}//第三步:根据累加直方图和直方图均衡化原理得到输入灰度级和输出灰度级之间的映射关系Mat outPut_ q = Mat::zeros (Size(256, 1),CV_8UC1);float cofficient = 256 / (rows*cols) ;for (int p = 0; p < 256;p++){float q = cofficient*zeroCumuMoment.at<int>(0, p) - 1;if(q>0){outPut_ q.at<uchar>(0, p) = uchar(floor(q));}elseoutPut_ q.at<uchar>(0, p) = 0;}//第四步:得到直方图均衡化后的图像Mat equalHist Image= Mat::zeros (image.size(),CV_8UC1);for(intr=0;r<rows;r++){for(intC=0;C<cols;c++){int p = image.at<uchar>(r, c) ;equalHistImage.at<uchar>(r, c) = outPut_ q. at<uchar>(0, p);}}return equalHistImage;}

  我们可以看下直方图均衡化的效果:

#include <iostream>
#include <opencv2/opencv.hpp> 
# include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv ;int main() {Mat src = imread(D:/VSCodeFile/0penCV_CSDN/image/logo.jpeg);//Mat src;if (src.empty() {cout<<“the image is empty!" << endl;imshow("image",src);Mat gray;cvtColor (src, gray, COLOR_BGR2GRAY);imshow("灰度图",gray);Mat dst;equalizeHist (gray, dst) ;imshow("直方图均衡化演示",dst) ;waitKey (0) ;return 0;
}

三、 总结

  最后,长话短说,大家看完就好好动手实践一下,切记不能三分钟热度、三天打鱼,两天晒网。OpenCV是学习图像处理理论知识比较好的一个途径,大家也可以自己尝试写写博客,来记录大家平时学习的进度,可以和网上众多学者一起交流、探讨,有什么问题希望大家可以积极评论交流,我也会及时更新,来督促自己学习进度。希望大家觉得不错的可以点赞、关注、收藏。


🚶🚶🚶今天的文章就到这里啦~
喜欢的话,点赞👍、收藏⭐️、关注💟哦 ~
http://www.yidumall.com/news/37801.html

相关文章:

  • 泾阳做网站优秀软文范例100字
  • 常见的网站开发工具网站开发框架
  • 网站建设有哪些方面目前小说网站排名
  • 就要外贸人才网论坛seo千享科技
  • 全国油价今日价格seo体系
  • 很色h做游戏网站黄金网站软件app大全下载
  • 珠海互联网公司有哪些石家庄seo排名外包
  • 工程建设信息都在哪个网站发布最佳bt磁力狗
  • 网站做第三方登录快速seo关键词优化技巧
  • 坂田做网站多少钱建站之星
  • 衢州做网站 thinknew昆明seo排名外包
  • 东莞疫情最新消息今天新增25例武汉seo排名
  • 青村网站建设网络平台推广广告费用
  • 建网站所需材料百度导航下载2020新版语音
  • 重生做代购网站互联网推广销售好做吗
  • 网站模板 源码磁力岛
  • 做日结活的网站seo的作用
  • 番禺网站(建设信科网络)新公司如何做推广
  • 阿里网站建设百度优化教程
  • 网络工作室照片武汉seo优化分析
  • 建设银行纪检监察网站域名是什么 有什么用
  • 58同城枣庄网站建设哈尔滨优化推广公司
  • 门户网站建设服务收费宁波seo搜索优化费用
  • 寺院网站建设山东省住房和城乡建设厅
  • 免费建设一个网站静态网站开发
  • 合肥网站建设优化学习app开发工具哪个好
  • 模板网站如何快速交付给客户百度软件市场
  • 网站seo策略新闻今天的最新新闻
  • 北京国税局网站做票种核定时真正免费建站
  • 把自己做的动画传到哪个网站上seo网站推广收费