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

企业网站的开发流程怎么做app推广

企业网站的开发流程,怎么做app推广,商务网站开发心得,电脑可以做网站服务器么概念 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法,通过拉伸像素强度分布范围来增强图像对比度。 原理 均衡化指的是把一个分布 (给定的直方图) 映射 到另一个分布 (一个更宽更统一的强度值分布),从而令强度值分布会在整个范围内…

概念

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法,通过拉伸像素强度分布范围来增强图像对比度。

原理

  • 均衡化指的是把一个分布 (给定的直方图) 映射 到另一个分布 (一个更宽更统一的强度值分布),从而令强度值分布会在整个范围内展开。

  • 要想实现均衡化的效果,映射函数应该是一个 累积分布函数 ( cumulative distribution function, cdf ) 。对于直方图 H ( i ) H(i) H(i),它的累积分布函数 H ′ ( i ) H^{'}(i) H(i)

    H ′ ( i ) = ∑ j = 0 i H ( j ) H^{'}(i) = \sum_{j=0}^i H(j) H(i)=j=0iH(j)

    要使用其作为映射函数,我们必须对最大值为255 (或者用图像的最大强度值) 的累积分布 H ′ ( i ) H^{'}(i) H(i) 进行归一化。

  • 最后,我们使用一个简单的映射过程来获得均衡化后像素的强度值,假设原图为 I ( x , y ) I(x,y) I(x,y),均衡化后像素强度值 I ′ ( x , y ) I^{'}(x,y) I(x,y)

    I ′ ( x , y ) = H ′ ( I ( x , y ) ) I^{'}(x,y) = H^{'}(I(x,y)) I(x,y)=H(I(x,y))

代码实现

以 OpenCV 为例,其直方图均衡化函数为 equalizeHist(),代码实现如下:

/** @brief Equalizes the histogram of a grayscale image.The function equalizes the histogram of the input image using the following algorithm:- Calculate the histogram \f$H\f$ for src .
- Normalize the histogram so that the sum of histogram bins is 255.
- Compute the integral of the histogram:
\f[H'_i =  \sum _{0  \le j < i} H(j)\f]
- Transform the image using \f$H'\f$ as a look-up table: \f$\texttt{dst}(x,y) = H'(\texttt{src}(x,y))\f$The algorithm normalizes the brightness and increases the contrast of the image.@param src Source 8-bit single channel image.
@param dst Destination image of the same size and type as src .*/
CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst );void cv::equalizeHist( InputArray _src, OutputArray _dst )
{CV_INSTRUMENT_REGION();CV_Assert( _src.type() == CV_8UC1 );if (_src.empty())return;CV_OCL_RUN(_src.dims() <= 2 && _dst.isUMat(),ocl_equalizeHist(_src, _dst))Mat src = _src.getMat();_dst.create( src.size(), src.type() );Mat dst = _dst.getMat();CV_OVX_RUN(!ovx::skipSmallImages<VX_KERNEL_EQUALIZE_HISTOGRAM>(src.cols, src.rows),openvx_equalize_hist(src, dst))CALL_HAL(equalizeHist, cv_hal_equalize_hist, src.data, src.step, dst.data, dst.step, src.cols, src.rows);Mutex histogramLockInstance;const int hist_sz = EqualizeHistCalcHist_Invoker::HIST_SZ;int hist[hist_sz] = {0,};int lut[hist_sz];EqualizeHistCalcHist_Invoker calcBody(src, hist, &histogramLockInstance);EqualizeHistLut_Invoker      lutBody(src, dst, lut);cv::Range heightRange(0, src.rows);if(EqualizeHistCalcHist_Invoker::isWorthParallel(src))parallel_for_(heightRange, calcBody);elsecalcBody(heightRange);int i = 0;while (!hist[i]) ++i;int total = (int)src.total();if (hist[i] == total){dst.setTo(i);return;}float scale = (hist_sz - 1.f)/(total - hist[i]);int sum = 0;for (lut[i++] = 0; i < hist_sz; ++i){sum += hist[i];lut[i] = saturate_cast<uchar>(sum * scale);}if(EqualizeHistLut_Invoker::isWorthParallel(src))parallel_for_(heightRange, lutBody);elselutBody(heightRange);
}

应用举例

C++ 代码如下:

#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>using namespace cv;
using std::cout;
using std::endl;int main(int argc, char** argv)
{CommandLineParser parser(argc, argv, "{@input | wukong.png | input image}");Mat src = imread(samples::findFile(parser.get<String>("@input")), IMREAD_COLOR);if (src.empty()){cout << "Could not open or find the image!\n" << endl;cout << "Usage: " << argv[0] << " <Input image>" << endl;return EXIT_FAILURE;}// 转换为灰度图像cvtColor(src, src, COLOR_BGR2GRAY);Mat dst;// 直方图均衡化equalizeHist(src, dst);imshow("Source image", src);imshow("Equalized Image", dst);waitKey();return EXIT_SUCCESS;}

Python 代码如下:

import cv2
import matplotlib.pyplot as plt# 读取图像
img = cv2.imread('../data/wukong.png', cv2.IMREAD_COLOR)
# 转换为灰度图
src = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 直方图均衡化
dst = cv2.equalizeHist(src)
# 显示原图和均衡化后的图
fig, axes = plt.subplots(2, 2, figsize=(18, 9))
axes[0, 0].imshow(src, cmap='gray')
axes[1, 0].imshow(dst, cmap='gray')
axes[0, 1].hist(src.ravel(), 256, [0, 256], color='#fc8403')
axes[1, 1].hist(dst.ravel(), 256, [0, 256], color='#fc8403')
# 显示直方图网格
axes[0, 1].grid(axis='y', linestyle='-.', alpha=0.5)
axes[1, 1].grid(axis='y', linestyle='-.', alpha=0.5)
# 设置标题
axes[0, 0].set_title('Original Image')
axes[1, 0].set_title('Equalized Image')
axes[0, 1].set_title('Histogram of Original Image')
axes[1, 1].set_title('Histogram of Equalized Image')
# 显示图表
plt.show()

直方图均衡化效果

http://www.hkea.cn/news/796092/

相关文章:

  • 宿州建设网站公司前端seo搜索引擎优化
  • 做王境泽表情的网站百度seo关键词优化排名
  • 怎么选择无锡网站建设虚拟主机搭建网站
  • 做原油期货关注什么网站搜索引擎优化是做什么
  • 微信小程序怎么制作游戏安卓优化清理大师
  • 胶南做网站初学者做电商怎么入手
  • 网站为什么要维护佛山网络营销推广
  • 国企网站建设报告怎么建造自己的网站
  • 免费做司考真题的网站余姚网站如何进行优化
  • 如何网站开发1688网站
  • 丽水专业网站建设价格青岛网站优化
  • 网站开发专业培训学校百度推广登录官网入口
  • 贵阳做网站公司网站热度查询
  • 做课件最好的素材网站考拉seo
  • 网站建设玖首选金手指seo网站优化收藏
  • 台州卓远做网站好不好广州seo教程
  • dz网站数据备份bt磁力猪
  • github 可以做网站吗360seo
  • 杭州 企业门户网站建设爱链
  • dj那个网站做的好长沙公司网络营销推广
  • 设计师培训招生视频黑帽seo联系方式
  • 做网上贸易哪个网站好西宁网站seo
  • 电子烟网站建设杯子软文营销300字
  • 广州企业网站制作怎么做营销推广
  • 网站建设服务器在香港郑州网站建设专业乐云seo
  • 河北建设工程交易信息网海口关键词优化报价
  • 全国网站建设公司有多少家微信朋友圈广告投放收费标准
  • 免费做网站公司黑帽seo排名技术
  • apk连接wordpress上海seo
  • 企业建网站租用服务器好还是买一个好石家庄网站关键词推广