所有代码已测试通过。

import cv2
import numpy as npdef gamma(source,out):img = cv2.imread(source, cv2.IMREAD_GRAYSCALE)# 归1Cimg = img / 255# 伽玛变换gamma = 0.7O = np.power(Cimg, gamma)O = O * 255# 效果cv2.imwrite(out, O, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])def hist(source):img = cv2.imread(source, cv2.IMREAD_GRAYSCALE)# 求出img 的最大最小值Maximg = np.max(img)Minimg = np.min(img)# 输出最小灰度级和最大灰度级Omin, Omax = 0, 255# 求 a, ba = float(Omax - Omin) / (Maximg - Minimg)b = Omin - a * Minimg# 线性变换O = a * img + bO = O.astype(np.uint8)cv2.imshow('enhance', O)#cv2.imwrite('hist.png', O, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])cv2.waitKey(0)cv2.destroyAllWindows()def hist_auto(source):img = cv2.imread(source, 0)img = cv2.resize(img, None, fx=0.5, fy=0.5)# 创建CLAHE对象clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))# 限制对比度的自适应阈值均衡化dst = clahe.apply(img)# 使用全局直方图均衡化equa = cv2.equalizeHist(img)# 分别显示原图,CLAHE,HE#cv.imshow("img", img)#cv2.imshow("dst", dst)cv2.imwrite('hist_auto.png', dst, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])def calcGrayHist(I):# 计算灰度直方图h, w = I.shape[:2]grayHist = np.zeros([256], np.uint64)for i in range(h):for j in range(w):grayHist[I[i][j]] += 1return grayHistdef equalHist(img):import math# 灰度图像矩阵的高、宽h, w = img.shape# 第一步:计算灰度直方图grayHist = calcGrayHist(img)# 第二步:计算累加灰度直方图zeroCumuMoment = np.zeros([256], np.uint32)for p in range(256):if p == 0:zeroCumuMoment[p] = grayHist[0]else:zeroCumuMoment[p] = zeroCumuMoment[p - 1] + grayHist[p]# 第三步:根据累加灰度直方图得到输入灰度级和输出灰度级之间的映射关系outPut_q = np.zeros([256], np.uint8)cofficient = 256.0 / (h * w)for p in range(256):q = cofficient * float(zeroCumuMoment[p]) - 1if q >= 0:outPut_q[p] = math.floor(q)else:outPut_q[p] = 0# 第四步:得到直方图均衡化后的图像equalHistImage = np.zeros(img.shape, np.uint8)for i in range(h):for j in range(w):equalHistImage[i][j] = outPut_q[img[i][j]]return equalHistImagedef linear(source):img = cv2.imread(source, 0)# 使用自己写的函数实现equa = equalHist(img)cv2.imshow("equa", equa)cv2.imwrite('temp.png', equa, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])cv2.waitKey()source = "raw.jpg"
#gamma(source)
hist(source)
#hist_auto(source)
#linear(source)
#gamma('temp.png','g2.png')

python-opencv-使图片更清晰的几种方法相关推荐

  1. python显示gif图片报错_4种方法(plglet、tkinter、guizero、pygame)的GUI中显示gif

    1 说明: 1.1 环境:python3.8,微软编辑器vscode,深度deepin-linux操作系统. 1.2 代码亲测,注释详细,通俗易懂,适合收藏和转发,慢慢分析,避免入坑. 1.3 锻炼p ...

  2. python切割图片文字_Python+opencv 实现图片文字的分割的方法示例

    Python+opencv 实现图片文字的分割的方法示例 发布时间:2020-08-26 03:28:37 来源:脚本之家 阅读:116 作者:坏小孩90 实现步骤: 1.通过水平投影对图形进行水平分 ...

  3. cv2 inrange灰度图_Python opencv将图片转为灰度图的方法示例

    这篇文章主要介绍了python opencv将图片转为灰度图的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 使用ope ...

  4. Python OpenCV去除图片水印

    问题描述 去除百度水印 1.jpg,背景简单 2.jpg,背景复杂 解决方案 安装 pip install opencv-python pip install numpy 方法一.OpenCV提取颜色 ...

  5. python opencv调节图片亮度与对比度

    python opencv调节图片亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和 ...

  6. python opencv 得到图片路径image_path的宽wide、高heigh和深度deep

    python opencv 得到图片路径image_path的宽wide.高heigh和深度deep 图片路径是:'1.jpg' 下面是具体代码: import cv2 #得到图片路径image_pa ...

  7. 2021-01-07 python opencv调节图片亮度与对比度

    python opencv调节图片亮度与对比度 度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和亮 ...

  8. python opencv获取图片分辨率_python-opencv遍历图片像素,并对像素进行操作

    看代码: def access_pixels(frame): print(frame.shape) #shape内包含三个元素:按顺序为高.宽.通道数 height = frame.shape[0] ...

  9. python +opencv 根据图片定位进行UI自动化

    python +opencv 根据图片定位进行UI自动化 前言: 做过移动端ui自动化的小伙伴,就会发现很多控件的元素是一样的或者是找不到的,为了解决这个痛点,于是通过图片灰度处理返回坐标x,y找到控 ...

  10. qt 加载 图片旋转_QT 实现图片旋转的两种方法

    第一种方案 使用 QPixmap 的 transformed 函数来实现旋转,这个函数默认是以图片中心为旋转点,不能设置旋转的中心点,使用如下: QMatrix matrix; matrix.rota ...

最新文章

  1. UVA 532 - Dungeon Master
  2. 恢复从回收站中被删除的文件的方法
  3. map集合怎么取value值最大的前三_Java之集合(下)
  4. linux下c语言利用iconv函数实现utf-8转unicode
  5. NSMutableArray的一些知识
  6. Redhat Linux 7.3 虚拟机通过USB挂载NTFS格式的移动硬盘
  7. Important Tips
  8. 百度信息流 绑定服务器,【实例】百度信息流账户搭建步骤
  9. java判断名字是否为张三_现有5个学生{张三,李四,王五,那六,小七}的数组,输入一个姓名,检查姓名是否存在,如果java啊...
  10. Halcon 毛刺检测
  11. 神经网络知识点汇总——FNN
  12. table数据刷新;v-if刷新el-table表格
  13. 一个ppp帧的数据部分(用十六进制写出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。
  14. zynq Linux软件中断,Linux Zynq GPIO中断
  15. EmguCV学习(一)
  16. 【心田花开】三年级语文阅读《独立宣言》赏析
  17. Resource Possword
  18. python3:设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声
  19. 浏览器代理服务的另一选择——pac配置
  20. Office 365入门之感受云计算

热门文章

  1. 计算机三级要英语词汇,大学英语三级常考词汇
  2. WEB视频自适应(下)
  3. 芯片数据手册下载网站推荐
  4. 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)...
  5. 方程自己解(1)——物理信息神经网络(PINN)
  6. 使用深度学习和物理约束求解偏微分方程
  7. 如何设计和实现微信公众号关注后48小时内定时给粉丝自动推送客服消息?
  8. matlab中如何求导数,matlab如何求导数
  9. 记录一个去底色转换为透明图片的在线工具
  10. 信息差暴利副业项目,让你日入500+