灰度图的非线性对数变换,其中c为尺度比较常数,可以通过改变c来得到不同的图形效果。

代码如下:

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 非线性对数变换
# 传入参数 img_gray为灰度图,c为尺度比较常数
def nonlinear_logarithm_transform(img_gray, c):result = c * np.log(1.0 + img_gray)# uint8是专门用于存储各种图像的(包括RGB,灰度图像等),范围是从0–255# 这里要转换成unit8,否则会报错result = np.uint8(result)return result
# 绘制对数图像
def nonlinear_logarithm_function(c):x = np.arange(0, 255)y = c * np.log(1.0 + x)plt.title("nonlinear_logarithm")# # 设置x轴的作图范围# plt.xlim(0, 255)# # 设置y轴的作图范围# plt.ylim(0, 255)# 表达的是x轴的刻度内容的范围plt.xticks((0, 255))# 表达的是y轴的刻度内容的范围plt.yticks((0, 255))plt.text(125, 1560, 'c='+str(c))plt.plot(x, y)plt.show()
if __name__ == '__main__':img = cv.imread("./image/fengjing.jpg")img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)# 此阈值可以改变,c叫做尺度比较常数# 通过调整c,可以改变图像c = 300res = nonlinear_logarithm_transform(img_gray, c)nonlinear_logarithm_function(c)cv.imshow("Origin", img_gray)cv.imshow("nonlinear_logarithm_transform", res)cv.waitKey(0)cv.destroyAllWindows()

运行结果:



图像的效果有了明显变化

Python 图像处理OpenCV:灰度图的非线性对数变换(笔记)相关推荐

  1. python opencv 灰度图非局部平均去噪

    python opencv 灰度图非局部平均去噪 代码: import cv2 import numpy as np # 灰度图像去噪 def MeansDenoising(img,h,templat ...

  2. [Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  3. numpy 用于图像处理(灰度图、转置、通道分离、图像扩展、水平镜像、水平翻转、调换x,y坐标、添加mask、随机打乱顺序、交换通道)

    目录 numpy 用于图像处理 1. 转换为灰度图 2. 转置 3. 画出三个通道的彩图 4. 图像扩展 5. 水平镜像 --- 交换行 6. 水平翻转 --- 交换列 7. 调换x,y坐标 8. 添 ...

  4. opencv 灰度图

    #include <opencv2/opencv.hpp> Mat srcImg = imread("D://3901781-2.JPG"); // 读取源图像 if  ...

  5. #Python #字符画 #灰度图 使用Python绘制字符画及其原理

    由于最近身体状况不太好所以更新会有点慢,请大家多多包涵.同时也提醒大家注意保重身体! 前提:默认大家已经正确安装了 Python,且正确将Python配置到了系统Path . 目录 1.字符画的概况 ...

  6. opencv灰度图转伪彩图或彩色图

    一.背景 一般例如红外图像,呈现出来的是灰度图效果,此时每个像素有一个,在0-255内,如果想要观看伪彩图,也就是人工设置的彩色,需要在灰度图的基础上,给它增加RGB三个通道的值,让它变为看起来有红绿 ...

  7. 图像处理之灰度图转伪彩色图原理与代码分析

    首先强调:在matlab中用[row,col]=size(x)获取的行和列是与图片编辑器显示的行列相反. 首先RGB图转为灰度图,通过rgb2gray()函数:灰度图中每个像素点的灰度值根据三个分段线 ...

  8. c++ opencv 灰度图转彩色图

    灰度图转彩色图______主要作用:在图上画彩色线条等等 //灰度图转彩色图 cv::Mat grayToRGB(const cv::Mat input_img) {//创建一个和灰度图一样大小的0值 ...

  9. python热力图转灰度图_ThingJS之3D热力图,一个不那么“技术”的实现方式

    物联网通过配置热力图,可查看该场景中设备的分布或显示设备属性功能分布.ThingJS推出3D热力图,一个不那么"技术"的实现方式! 热力图是地理位置可视化的一种表现方式,能够使得比 ...

最新文章

  1. 链表问题4——反转双向链表
  2. 互联网人知道几个情人节?
  3. flash写保护原理_老司机带路:LPC82x 存储器及读写保护 手到擒来!
  4. H5页面与ios交互返回上一级
  5. 【python科学计算发行版】
  6. OpenShift 4 MTC - 从 OpenShift 3 向 OpenShift 4 迁移应用
  7. linux乱码临时怎么解决方案,(收集)linux环境下乱码的解决方法
  8. R语言基于S3的面向对象编程
  9. 智能优化算法:阿基米德优化算法 -附代码
  10. i7 8750h支持linux,开启游戏本六核时代!酷睿i7-8750H处理器性能实测
  11. 私有云盘的搭建(owncloud、seafile)
  12. 【Qt设计开发】GUI界面设计开发
  13. 长沙民政职业技术学院计算机网络技术专业,长沙民政职业技术学院计算机网络技术专业...
  14. Android8.1系统添加屏幕左侧边缘向右滑退出当前页面功能
  15. solaris启动过程详解
  16. 2018年07月17日(1~10)
  17. Windows RDS远程会话服务
  18. 程序员应该避开的20个低级不良用户体验
  19. 用户开启了iCloud 照片库,选择了“优化 iPhone/iPad 储存空间”获取图片失败
  20. layui 表格在点表头排序时数据错乱

热门文章

  1. 运维面临的主要安全威胁介绍
  2. 【答学员问】34岁想转行做it还可以吗?
  3. 新点软件怎么导入清单_excle表怎么导入新点,怎样把EXCEL表格导入project 中?
  4. 以太网驱动详解之RMII、SMII、GMII、RGMII接口
  5. C语言如何判断回文数
  6. 【元宇宙欧米说】三维视觉艺术:未来元宇宙设计的表现形式
  7. 用户标签有哪些类型,如何进行科学分类?
  8. 【总结】包和模块(2022.4.27)
  9. hive插件 ranger_hive 整合ranger
  10. Redis有事务冲突吗