直方图均衡化

Python中的图像处理

有些话、适合烂在心里 提交于 2019-12-08 03:00:03
http://www.ituring.com.cn/tupubarticle/2024 第 1 章 基本的图像操作和处理 本章讲解操作和处理图像的基础知识,将通过大量示例介绍处理图像所需的 Python 工具包,并介绍用于读取图像、图像转换和缩放、计算导数、画图和保存结果等的基本工具。这些工具的使用将贯穿本书的剩余章节。 1.1 PIL:Python图像处理类库 PIL(Python Imaging Library Python,图像处理类库)提供了通用的图像处理功能,以及大量有用的基本图像操作,比如图像缩放、裁剪、旋转、颜色转换等。PIL 是免费的,可以从 http://www.pythonware.com/products/pil/ 下载。 利用 PIL 中的函数,我们可以从大多数图像格式的文件中读取数据,然后写入最常见的图像格式文件中。PIL 中最重要的模块为 Image 。要读取一幅图像,可以使用: from PIL import Image pil_im = Image . open ( 'empire.jpg' ) 上述代码的返回值 pil_im 是一个 PIL 图像对象。 图像的颜色转换可以使用 convert() 方法来实现。要读取一幅图像,并将其转换成灰度图像,只需要加上 convert('L') ,如下所示: pil_im = Image . open (

opencv 直方图

夙愿已清 提交于 2019-12-03 20:09:46
1.简介 图像直方图均衡化可以用于 图像增强 . 对输入图像进行直方图均衡化处理,提升后续对象检测的准确率在OpenCV人脸检测的代码演示中已经很常见。此外对医学影像图像与卫星遥感图像也经常通过直方图均衡化来提升图像质量。 2.opencv API 直方图均衡化一般 先将图像转为灰度图,然后对其进行均衡化 OpenCV中直方图均衡化的API很简单 equalizeHist(src, dst) 3.示例 将彩色图像进行直方图均衡化已达到图像增强 步骤: 1.彩色图像通道进行分离(RGB) 2.每一个单通道进行直方图均衡化 3.将均衡化后的图像进行合并得到彩色图像 #include <opencv2/opencv.hpp> int main(int argc, char* argv[]) { Mat src = imread("dog.jpg"); if (src.empty()) { printf("could not load image...\n"); return -1; } imshow("src", src); vector<Mat> bgr; split(src, bgr); Mat dst; equalizeHist(bgr[0], bgr[0]); equalizeHist(bgr[1], bgr[1]); equalizeHist(bgr[2], bgr[2]);

opencv C++全局直方图均衡化

倖福魔咒の 提交于 2019-11-29 22:06:47
cv::Mat histogramEqualization(cv::Mat img){ int rows=img.rows; int cols=img.cols; cv::Mat grayScale=cv::Mat::zeros(cv::Size(256,1),CV_32SC1); cv::Mat grayScaleSum=cv::Mat::zeros(cv::Size(256,1),CV_32SC1); cv::Mat _output=cv::Mat::zeros(cv::Size(256,1),CV_8UC1); cv::Mat output=cv::Mat::zeros(img.size(),CV_8UC1); float cofficient=256.0/(rows*cols); for(int i=0;i<rows;++i){ // 计算不同灰度值的个数。 for(int j=0;j<cols;++j){ int index=int(img.at<uchar>(i,j)); grayScale.at<int>(0,index)+=1; } } for(int j=0;j<256;++j){ if(j==0)grayScaleSum.at<int>(0,j)=grayScale.at<int>(0,0); else grayScaleSum.at<int>(0,j)

论文笔记:Learning to See in the Dark

扶醉桌前 提交于 2019-11-29 17:30:36
Introduction 在极低照度环境下,使用短曝光拍照会存在大量噪声和偏色问题,而使用长曝光拍照会造成图像模糊。文章提出了一种低光照图像质量提升的方法。其利用端到端的全卷积网络代替传统图像后处理链路,可直接将传感器RAW数据处理得到可视化的彩色图像。文章主要贡献在于: 提出了一种端到端的方法提升极低光照图像的图像质量,主要解决噪声和偏色问题; 建立低光照图像库,以短曝光图像与其对应的长曝光参考图像作为训练集,训练全卷积神经网络; 分析并比较了多种因素对图像质量的影响。 文章声称其可以做到将低光照图像亮度提升300倍,且保持好的噪声抑制和颜色校正效果。 SID Dataset See-in-the-Dark(SID)数据集包含了 5094张短曝光RAW图像,及其对应的长曝光参考图像。 1. 数据集包含了室内和室外的图像,其中室外场景照度在0.2lux~5lux,室内场景照度在0.03lux~0.3lux。 2. 短曝图曝光时间设定为1/30到1/10s,对应长曝图曝光时间设定为其100到300倍,即10到30s。 3. 短曝图与其对应的长曝图之间没有位移。 4. 随机挑选70%作为训练集,20%作为测试集,10%作为验证集。 5. 图像获取使用两款相机:Sony α α //--> 7S II 和 Fujifilm X-T2,其相关参数如下 Method 流程

OpenCv 018---图像直方图均衡化

岁酱吖の 提交于 2019-11-28 08:41:49
1 前备知识 图像直方图均衡化可以用于图像增强,对图像进行直方图均衡化处理,可提升后续对象检测的准确率,医学影像图像、卫星遥感图像、机器视觉产品图像均可通过直方图均衡化对图像质量进行提升,对比度增强。 2 所用到的主要OpenCv API CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst ); /** @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)

opencv图像直方图均衡化及其原理

妖精的绣舞 提交于 2019-11-26 17:08:21
直方图均衡化是什么有什么用 先说什么是直方图均衡化,通俗的说,以灰度图为例,原图的某一个像素为x,经过某个函数变为y.形成新的图.新的图的灰度值的分布是均匀的,这个过程就叫直方图均衡化. 图像直方图均衡化作用:用来增强对比度. 这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。 这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个 缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度 。 先看直观的效果,图三变为图四的过程,就利用了直方图均衡化. 再来看看缺点: 对比度增强了,但是面部太亮,看不清楚了. 什么是直方图 其实就是离散的概率分布图. 比如256灰度图.横轴就是像素值,从0-255,纵轴是当前像素值对应的像素个数. 是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素数。可以借助观察该直方图了解需要如何调整亮度分布