• opencv_图像归一化
#include <cv.h>
#include <highgui.h>void zscoreNormalize(const cv::Mat& src, cv::Mat& dst)
{// compute mu and mu squaredcv::Mat mu(src.size(), src.type());cv::GaussianBlur(src, mu, cv::Size(7, 7), 1.166);cv::Mat mu_sq;cv::multiply(mu, mu, mu_sq);// compute sigma (local sigma)cv::Mat sigma(src.size(), src.type());cv::multiply(src, src, sigma);cv::GaussianBlur(sigma, sigma, cv::Size(7, 7), 1.166);cv::subtract(sigma, mu_sq, sigma);cv::pow(sigma, double(0.5), sigma);cv::add(sigma, cv::Scalar(1.0 / 255), sigma);cv::subtract(src, mu, dst);cv::divide(dst, sigma, dst);
}void zscoreNormalize_v2(const cv::Mat& src, cv::Mat& dst)
{cv::Mat mu(src.size(), src.type());cv::GaussianBlur(src, mu, cv::Size(7, 7), 1.166);cv::subtract(src, mu, mu);cv::Mat sigma(src.size(), src.type());cv::multiply(mu, mu, sigma);cv::GaussianBlur(sigma, sigma, cv::Size(7, 7), 1.166);cv::pow(sigma, 0.5, sigma);cv::add(sigma, cv::Scalar(1.0 / 255), sigma);cv::divide(mu, sigma, dst);
}template<typename Func>
double bench_(const Func& func, unsigned int iterNum = 1)
{auto t1 = cv::getTickCount();while (iterNum--) func();auto t2 = cv::getTickCount();return 1000.0 * (t2 - t1) / cv::getTickFrequency();
}void show(const std::string& winname, const cv::Mat& src)
{cv::Mat normalized;cv::normalize(src, normalized, 255, 0, CV_MINMAX, CV_8U);cv::bitwise_not(normalized, normalized);cv::imshow(winname, normalized);
}int main()
{cv::Mat src = cv::imread("lena.jpg", 0);cv::Mat src64f;src.convertTo(src64f, CV_64F, 1.0 / 255);cv::Mat dst64f(src.size(), src.type());int iterNum = 10;printf("zscoreNormalize %f ms\n", bench_([&](){zscoreNormalize(src64f, dst64f); }, iterNum));show("zscoreNormalize", dst64f);printf("zscoreNormalize_v2 %f ms\n", bench_([&](){zscoreNormalize_v2(src64f, dst64f); }, iterNum));show("zscoreNormalize_v2", dst64f);cv::waitKey();return 0;
}

opencv图像归一化zscore_normalize相关推荐

  1. OpenCv图像处理之图像归一化

    OpenCv图像处理之图像归一化 归一化 中心化 标准化 归一化 图像处理中,图像单通道像素值为0~255之间的uchar类型,通常使用min-max归一化将其转化为0~1区间之间,既不会改变数据的分 ...

  2. opencv图像修复

    opencv图像修复 图像修复,一张利用原图,一张利用损坏位置的灰度图,进行图像修复,利用的是cv2.inpaint的函数. 原图: 滤波后的损坏位置的灰度图: 修复结果: 代码: import cv ...

  3. OpenCV图像梯度(Sobel和Scharr)

    OpenCV图像梯度(Sobel和Scharr) 1 图像梯度是什么? 2 图像梯度的用途 3 图像梯度的使用 参考 这篇博客将介绍图像渐变以及如何使用OpenCV的cv2.Sobel计算Sobel渐 ...

  4. Python,OpenCV图像金字塔cv2.pyrUp(), cv2.pyrDown()

    Python,OpenCV图像金字塔cv2.pyrUp, cv2.pyrDown 1. 效果图 2. 原理 2.1 什么是图像金字塔 2.2 金字塔分类 2.3 应用 3. 源码 参考 这篇博客将介绍 ...

  5. OpenCV图像缩放插值之BiCubic双三次插值

    图像缩放算法简介 在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值(立体插值),兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中 ...

  6. python皮同_Python OpenCV 图像的双线性插值算法,全网最细致的算法说明_橡皮擦,一个逗趣的互联网高级网虫-CSDN博客...

    原文作者:梦想橡皮擦 原文标题:Python OpenCV 图像的双线性插值算法,全网最细致的算法说明 发布时间:2021-02-17 20:55:32 Python OpenCV 365 天学习计划 ...

  7. OpenCV 图像加载和显示

    OpenCV 图像加载和显示 OpenCV 图像加载和显示 加载图像(使用cv :: imread) 创建一个名为OpenCV的窗口(使用cv :: namedWindow) 在OpenCV窗口中显示 ...

  8. OpenCV图像坐标系与行列宽高的关系

    这篇文章挺好    OpenCV图像坐标系与行列宽高的关系 图片坐标系,与从小到大见到的xy坐标系,x轴方向相同,只是y轴方向相反.

  9. python使用openCV图像加载(转化为灰度图像)、Canny边缘检测器检测图像的边缘(Detect Edges)

    python使用openCV图像加载(转化为灰度图像).Canny边缘检测器检测图像的边缘(Detect Edges) 目录

最新文章

  1. java srs 推流_srs安装与ffmpeg推流
  2. java第五章抽象类与接口5.1-5.3 2020.3.27+31
  3. boost::safe_numerics模块实现相等的constexpr的测试程序
  4. 三角形带优化库nvtrisrip的使用
  5. 14.5.5.1 An InnoDB Deadlock Example 一个InnoDB 死锁实例
  6. Core Animation基础
  7. 最全面的智能锁领域常见的无线传输协议类型
  8. 自学编程这几点非常重要
  9. 《人月神话》读后感与读书笔记
  10. 2022年全球及中国MICC电缆行业运行战略规划与未来投资策略分析报告
  11. 2017美国数学建模ICM D题 优化机场安全的乘客吞吐量检查点(Optimizing the Passenger Throughput at an Airport Security Checkpo)
  12. LSTM+CNN模型厄尔尼诺事件预测
  13. 计算机求和怎样操作,电脑求和怎么操作
  14. cPanel主机自定义php.ini文件
  15. ORB-SLAM Spanning Tree 的作用
  16. 一文彻底学会CSS-3
  17. SAS9.4+sid更新
  18. 毕业设计-基于微信小程序的“掌上实验室” 安全教育与管理系统
  19. 你可能已经被运营商http劫持了
  20. [论文阅读](图像/视频质量评价系列)

热门文章

  1. 美国盐湖城郊区一购物中心发生枪击案 致2人受伤
  2. web网页设计实例作业 ——我的家乡-四川(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品
  3. javascript实现页面的重新加载和页面的刷新
  4. 2021年高教社杯全国大学生数学建模竞赛
  5. 如何用区块链防止学历造假?
  6. UML图:活动图详细介绍
  7. i.mx6 android4.4.3 recovery时不删除内部SD卡上的导航地图和媒体文件等
  8. iphone计算机怎么修改错误字体,终于能给iPhone修改字体了,无需越狱,仅限iOS12.4...
  9. 基于matlab的脉冲多普勒测距、测速、实现测速以及测距功能
  10. MySQL 快速构造一亿条记录的表