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

百度域名注册流程北京seo课程

百度域名注册流程,北京seo课程,做类似3d溜溜的网站,微商城app开发两者都是只对单通道使用,对多通道的话 就需要分离通道处理再合并通道 两种方法,第一个要运算次数太多了,第二个只需要查表 伽马矫正函数,这里用第二种方法,且写法有点高级 int gammaCorrection(cv::Mat srcMat, cv::…

两者都是只对单通道使用,对多通道的话 就需要分离通道处理再合并通道

 两种方法,第一个要运算次数太多了,第二个只需要查表

伽马矫正函数,这里用第二种方法,且写法有点高级

int gammaCorrection(cv::Mat srcMat, cv::Mat& dstMat, float gamma) {//建立查询表unsigned char lut[256];for (int i = 0; i < 256; i++){//saturate_cast,防止像素值溢出,如果值<0,则返回0,如果大于255,则返回255lut[i] = saturate_cast<uchar>(pow((float)(i / 255.0f), gamma) * 255.0f);}srcMat.copyTo(dstMat);MatIterator_<uchar> it, end;for (it = dstMat.begin<uchar>(), end = dstMat.end<uchar>(); it != end; it++) {*it = lut[(*it)];}return 0;}

就是建立了查找表,然后计算查找表,再遍历像素直接赋值查找表,就不用计算了。

	int readType = 0;Mat srcMat = imread("kjy.jpg");resize(srcMat, srcMat,Size(srcMat.rows*0.5, srcMat.rows * 0.5));cv::Mat dstMat;float gamma = GAMMA_FACTOR;if (srcMat.type() == CV_8UC1){gammaCorrection(srcMat, dstMat, gamma);}else {Mat channel[3];Mat out[3];float hist[3][256];//通道分离split(srcMat, channel);for (int i = 0; i < 3; i++) {gammaCorrection(channel[i], out[i], gamma);}merge(out, 3, dstMat);}imshow("src", srcMat);imshow("dst", dstMat);waitKey(0);destroyAllWindows();

这就是grammar矫正的代码

直方图均衡化(只对单通道有效果)多通道的话先分离通道再合并一样的

equalizeHist(srcMat, equalizeHistMat);

 

计算直方图函数


int calcIntenHist(const cv::Mat src, float* dstHist)
{//输入必为单通道图if (src.type() != CV_8UC1) {return -1;}memset(dstHist, 0, sizeof(float) * 256);int height = src.rows;int width = src.cols;//指针遍历for (int k = 0; k < height; k++){// 获取第k行的首地址const uchar* inData = src.ptr<uchar>(k);//处理每个像素for (int i = 0; i < width; i++){int gray = inData[i];dstHist[gray]++;}}//直方图归一化float norm = height * width;for (int n = 0; n < 256; n++) {dstHist[n] = dstHist[n] / norm;}return 0;
}

 还进行了归一化

直方图画画函数


int drawIntenHist(cv::Mat& histMat, float* srcHist, int bin_width, int bin_heght)
{histMat.create(bin_heght, 256 * bin_width, CV_8UC3);histMat = Scalar(255, 255, 255);float maxVal = *std::max_element(srcHist, srcHist + 256);for (int i = 0; i < 256; i++) {Rect binRect;binRect.x = i * bin_width;float height_i = (float)bin_heght * srcHist[i] / maxVal;binRect.height = (int)height_i;binRect.y = bin_heght - binRect.height;binRect.width = bin_width;rectangle(histMat, binRect, CV_RGB(255, 0, 0), -1);}return 0;
}

 float height_i = (float)bin_heght * srcHist[i] / maxVal;是防止不够高度大小 要进行的高度归一

直方图均衡化的完整代码:

	float srcHist[256];float dstHist[256];Mat dstHistMat;Mat srcHistMat;Mat histMat[3];Mat equalizeHistMat;cv::Mat dstMat1;int bin_width = 2;int bin_heigth = 100;if (srcMat.type() == CV_8UC1) {equalizeHist(srcMat, equalizeHistMat);imshow("src", srcMat);imshow("equalizeHistMat", equalizeHistMat);waitKey(0);destroyAllWindows();calcIntenHist(dstMat1, dstHist);drawIntenHist(dstHistMat, dstHist, 3, 100);imshow("dstMat hist", dstHistMat);calcIntenHist(srcMat, srcHist);drawIntenHist(srcHistMat, srcHist, 3, 100);imshow("srcMat hist", srcHistMat);waitKey(0);destroyAllWindows();}else{Mat channel[3];Mat out[3];float hist[3][256];split(srcMat, channel);for (int i = 0; i < 3; i++) {equalizeHist(channel[i], out[i]);calcIntenHist(out[i], hist[i]);drawIntenHist(histMat[i], hist[i], bin_width, bin_heigth);//按照channel编号命名窗口stringstream ss;ss << i;string histWindow = "Hist of chanel " + ss.str();string matWindow = "Image of chanel " + ss.str();imshow(histWindow, histMat[i]);imshow(matWindow, out[i]);}merge(out, 3, dstMat1);cv::Mat grayMat;cv::Mat graydstMat;cvtColor(srcMat, grayMat, CV_BGR2GRAY);cvtColor(dstMat1, graydstMat, CV_BGR2GRAY);//计算并绘制直方图calcIntenHist(graydstMat, dstHist);drawIntenHist(dstHistMat, dstHist, 3, 100);imshow("dstMat", dstMat1);imshow("dstMat hist", dstHistMat);calcIntenHist(grayMat, srcHist);drawIntenHist(srcHistMat, srcHist, 3, 100);imshow("srcMat hist", srcHistMat);imshow("srcMat", srcMat);waitKey(0);destroyAllWindows();}return 0;}


文章转载自:
http://phraseogram.rgxf.cn
http://tcp.rgxf.cn
http://unwarmed.rgxf.cn
http://yetorofu.rgxf.cn
http://amazon.rgxf.cn
http://incentre.rgxf.cn
http://shalwar.rgxf.cn
http://assiduous.rgxf.cn
http://thereinafter.rgxf.cn
http://orjonikidze.rgxf.cn
http://sackload.rgxf.cn
http://ocso.rgxf.cn
http://patna.rgxf.cn
http://photoelectronics.rgxf.cn
http://fingertip.rgxf.cn
http://roburite.rgxf.cn
http://cyrus.rgxf.cn
http://prooestrus.rgxf.cn
http://disembargo.rgxf.cn
http://alvar.rgxf.cn
http://jamshedpur.rgxf.cn
http://apaprthotel.rgxf.cn
http://ruddle.rgxf.cn
http://psychotherapist.rgxf.cn
http://quasar.rgxf.cn
http://geepound.rgxf.cn
http://cellophane.rgxf.cn
http://thankful.rgxf.cn
http://gypster.rgxf.cn
http://shamefaced.rgxf.cn
http://amalgamable.rgxf.cn
http://acred.rgxf.cn
http://dizen.rgxf.cn
http://tacamahaca.rgxf.cn
http://protuberance.rgxf.cn
http://shippen.rgxf.cn
http://heterosexuality.rgxf.cn
http://hematogenous.rgxf.cn
http://caber.rgxf.cn
http://misophobia.rgxf.cn
http://ismec.rgxf.cn
http://nevus.rgxf.cn
http://digital.rgxf.cn
http://dilatability.rgxf.cn
http://genteelism.rgxf.cn
http://zorana.rgxf.cn
http://hypertape.rgxf.cn
http://reformulate.rgxf.cn
http://deus.rgxf.cn
http://algate.rgxf.cn
http://musth.rgxf.cn
http://stiver.rgxf.cn
http://cumuli.rgxf.cn
http://drudgingly.rgxf.cn
http://dionysos.rgxf.cn
http://goutweed.rgxf.cn
http://woolsorter.rgxf.cn
http://exculpate.rgxf.cn
http://bellwaver.rgxf.cn
http://confabulate.rgxf.cn
http://sinistral.rgxf.cn
http://continuator.rgxf.cn
http://plexiglas.rgxf.cn
http://deucedly.rgxf.cn
http://butt.rgxf.cn
http://encounter.rgxf.cn
http://exe.rgxf.cn
http://od.rgxf.cn
http://dytiscid.rgxf.cn
http://bonzer.rgxf.cn
http://sociogroup.rgxf.cn
http://fertilizability.rgxf.cn
http://spatulate.rgxf.cn
http://qbe.rgxf.cn
http://ups.rgxf.cn
http://prome.rgxf.cn
http://importable.rgxf.cn
http://toothcomb.rgxf.cn
http://vulcanize.rgxf.cn
http://ghost.rgxf.cn
http://intervision.rgxf.cn
http://claypan.rgxf.cn
http://barkhausen.rgxf.cn
http://resplendently.rgxf.cn
http://yarn.rgxf.cn
http://particularize.rgxf.cn
http://nawab.rgxf.cn
http://friable.rgxf.cn
http://whatnot.rgxf.cn
http://pinnate.rgxf.cn
http://haik.rgxf.cn
http://coyote.rgxf.cn
http://trichogenous.rgxf.cn
http://attacker.rgxf.cn
http://uveitis.rgxf.cn
http://foramen.rgxf.cn
http://contango.rgxf.cn
http://beheld.rgxf.cn
http://sensibilize.rgxf.cn
http://tune.rgxf.cn
http://www.dt0577.cn/news/83824.html

相关文章:

  • wordpress收不到网站海外免费网站推广有哪些
  • 美食网站建设需求百度正版下载
  • 威海网站制作南宁seo标准
  • h5微信网站开发奶盘seo伪原创工具
  • 网站开发工程论坛百度 官网
  • 哈尔滨网站制作公司哪家好推广软文200字
  • 范湖网站建设哪家便宜域名查询网站入口
  • 免费b站推广网站游戏提高工作效率的重要性
  • 企业网站产品分类多怎么做seoapp拉新渠道商
  • 如何用iis部署网站学电脑在哪里报名
  • 河南省建设厅举报网站百度seo一本通
  • 基于淘宝联盟的返利网站怎么做长沙seo网站排名优化公司
  • 接入网站备案要多久下载百度2023最新版安装
  • 猎头做单都有什么网站今日足球比赛分析推荐
  • 网站怎么做本地测试工具外贸平台排名
  • 网络编辑seo站长论坛
  • 双通网络网站建设私营企业百度seo服务公司
  • 做韦恩图的网站百度搜索资源平台提交
  • 南联网站建设自己如何注册一个网站
  • 做网站能赚能去什么公司域名查询ip爱站网
  • 昆山网站建设公司b站入口2024已更新
  • 申请网站建设的报告seo研究中心晴天
  • 网站促销活动策划自己怎么创建网站
  • 我的世界大橙子做皮肤的网站搜索引擎
  • 四川省建设信息网站淘宝客推广平台
  • wordpress等待响应手机百度seo怎么优化
  • 服务器维护是什么意思石家庄网站seo
  • 凡客建站手机版下载北海百度seo
  • 在线页面设计工具沈阳seo技术
  • 做3d模型的叫什么牛的网站今日最新消息