【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)

欢迎关注 『OpenCV 例程200篇』 系列,持续更新中
欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中

线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。

分段线性变换函数可以增强图像各部分的反差,增强感兴趣的灰度区间、抑制不感兴趣的灰度级。

灰度级分层可以突出图像中特定的灰度级区间,可以对灰度级进行分层处理。

灰度级分层有两种常用方案:一种方案是二值处理,将感兴趣的灰度级区间设为较大的灰度值,其它区间设为较小的灰度值;另一种方案是窗口处理,将感兴趣的灰度级区间设为较大的灰度值,其它区间不变。

两种灰度级分层方案的分段变换公式分别为:
Dt1={d,a≤D≤bc,elseDt2={d,a≤D≤bD,elseDt_1 = \begin{cases} d &, a \leq D \leq b\\ c &, else \end{cases} \\ Dt_2 = \begin{cases} d &, a \leq D \leq b\\ D &, else \end{cases} Dt1​={dc​,a≤D≤b,else​Dt2​={dD​,a≤D≤b,else​
式中,D 为原始图像的灰度值,Dt1、Dt2 为灰度变换后的图像灰度值。

例程:1.53 分段线性灰度变换(灰度级分层)

例程 1.53 对于肾部区域主动脉血管造影图像,采用灰度级分层技术增强主要血管,将感兴趣的灰度级区间显示为白色。方案一进行二值化处理,将其它灰度区间设为黑色;方案二则保留其它灰度区间的灰度值不变。

    # # 1.53 分段线性灰度变换 (灰度级分层)  # Gray layeredimgGray = cv2.imread("../images/Fig0312a.tif", flags=0)  # flags=0 读取为灰度图像width, height = imgGray.shape[:2]  # 图片的高度和宽度# Gray layered strategy 1: binary imagea, b = 155, 245  # 突出 [a, b] 区间的灰度imgLayer1 = imgGray.copy()imgLayer1[(imgLayer1[:,:]<a) | (imgLayer1[:,:]>b)] = 0  # 其它区域:黑色imgLayer1[(imgLayer1[:,:]>=a) & (imgLayer1[:,:]<=b)] = 255  # 灰度级窗口:白色# Gray layered strategy 2: grayscale imageimgLayer2 = imgGray.copy()imgLayer2[(imgLayer2[:,:]>=a) & (imgLayer2[:,:]<=b)] = 255  # 灰度级窗口:白色,其它区域不变plt.figure(figsize=(10, 6))plt.subplot(131), plt.imshow(imgGray, cmap='gray'), plt.title('Original'), plt.axis('off')plt.subplot(132), plt.imshow(imgLayer1, cmap='gray'), plt.title('Binary layered'), plt.axis('off')plt.subplot(133), plt.imshow(imgLayer2, cmap='gray'), plt.title('Grayscale layered'), plt.axis('off')plt.show()

(本节完)


版权声明:

youcans@xupt 原创作品,转载必须标注原文链接

Copyright 2021 youcans, XUPT

Crated:2021-11-22

欢迎关注 『OpenCV 例程200篇』 系列,持续更新中
欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中

【OpenCV 例程200篇】01. 图像的读取(cv2.imread)
【OpenCV 例程200篇】02. 图像的保存(cv2.imwrite)
【OpenCV 例程200篇】03. 图像的显示(cv2.imshow)
【OpenCV 例程200篇】04. 用 matplotlib 显示图像(plt.imshow)
【OpenCV 例程200篇】05. 图像的属性(np.shape)
【OpenCV 例程200篇】06. 像素的编辑(img.itemset)
【OpenCV 例程200篇】07. 图像的创建(np.zeros)
【OpenCV 例程200篇】08. 图像的复制(np.copy)
【OpenCV 例程200篇】09. 图像的裁剪(cv2.selectROI)
【OpenCV 例程200篇】10. 图像的拼接(np.hstack)
【OpenCV 例程200篇】11. 图像通道的拆分(cv2.split)
【OpenCV 例程200篇】12. 图像通道的合并(cv2.merge)
【OpenCV 例程200篇】13. 图像的加法运算(cv2.add)
【OpenCV 例程200篇】14. 图像与标量相加(cv2.add)
【OpenCV 例程200篇】15. 图像的加权加法(cv2.addWeight)
【OpenCV 例程200篇】16. 不同尺寸的图像加法
【OpenCV 例程200篇】17. 两张图像的渐变切换
【OpenCV 例程200篇】18. 图像的掩模加法
【OpenCV 例程200篇】19. 图像的圆形遮罩
【OpenCV 例程200篇】20. 图像的按位运算
【OpenCV 例程200篇】21. 图像的叠加
【OpenCV 例程200篇】22. 图像添加非中文文字
【OpenCV 例程200篇】23. 图像添加中文文字
【OpenCV 例程200篇】23. 图像添加中文文字
【OpenCV 例程200篇】24. 图像的仿射变换
【OpenCV 例程200篇】25. 图像的平移
【OpenCV 例程200篇】26. 图像的旋转(以原点为中心)
【OpenCV 例程200篇】27. 图像的旋转(以任意点为中心)
【OpenCV 例程200篇】28. 图像的旋转(直角旋转)
【OpenCV 例程200篇】29. 图像的翻转(cv2.flip)
【OpenCV 例程200篇】30. 图像的缩放(cv2.resize)
【OpenCV 例程200篇】31. 图像金字塔(cv2.pyrDown)
【OpenCV 例程200篇】32. 图像的扭变(错切)
【OpenCV 例程200篇】33. 图像的复合变换
【OpenCV 例程200篇】34. 图像的投影变换
【OpenCV 例程200篇】35. 图像的投影变换(边界填充)
【OpenCV 例程200篇】36. 直角坐标与极坐标的转换
【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理
【OpenCV 例程200篇】38. 图像的反色变换(图像反转)
【OpenCV 例程200篇】39. 图像灰度的线性变换
【OpenCV 例程200篇】40. 图像分段线性灰度变换
【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)
【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层)
【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)
【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)
【OpenCV 例程200篇】45. 图像的灰度直方图
【OpenCV 例程200篇】46. 直方图均衡化
【OpenCV 例程200篇】47. 图像增强—直方图匹配
【OpenCV 例程200篇】48. 图像增强—彩色直方图匹配
【OpenCV 例程200篇】49. 图像增强—局部直方图处理
【OpenCV 例程200篇】50. 图像增强—直方图统计量图像增强
【OpenCV 例程200篇】51. 图像增强—直方图反向追踪
【OpenCV 例程200篇】52. 图像的相关与卷积运算
【OpenCV 例程200篇】53. Scipy 实现图像二维卷积
【OpenCV 例程200篇】54. OpenCV 实现图像二维卷积
【OpenCV 例程200篇】55. 可分离卷积核
【OpenCV 例程200篇】56. 低通盒式滤波器
【OpenCV 例程200篇】57. 低通高斯滤波器
【OpenCV 例程200篇】58. 非线性滤波—中值滤波
【OpenCV 例程200篇】59. 非线性滤波—双边滤波
【OpenCV 例程200篇】60. 非线性滤波—联合双边滤波
【OpenCV 例程200篇】61. 导向滤波(Guided filter)
【OpenCV 例程200篇】62. 图像锐化——钝化掩蔽
【OpenCV 例程200篇】63. 图像锐化——Laplacian 算子
【OpenCV 例程200篇】64. 图像锐化——Sobel 算子
【OpenCV 例程200篇】65. 图像锐化——Scharr 算子
【OpenCV 例程200篇】66. 图像滤波之低通/高通/带阻/带通
【OpenCV 例程200篇】67. 空间域图像增强的综合应用
【OpenCV 例程200篇】68. 空间域图像增强的综合应用
【OpenCV 例程200篇】69. 连续非周期信号的傅立叶系数
【OpenCV 例程200篇】70. 一维连续函数的傅里叶变换
【OpenCV 例程200篇】71. 连续函数的取样
【OpenCV 例程200篇】72. 一维离散傅里叶变换
【OpenCV 例程200篇】73. 二维连续傅里叶变换
【OpenCV 例程200篇】74. 图像的抗混叠
【OpenCV 例程200篇】75. Numpy 实现图像傅里叶变换
【OpenCV 例程200篇】76. OpenCV 实现图像傅里叶变换
【OpenCV 例程200篇】77. OpenCV 实现快速傅里叶变换
【OpenCV 例程200篇】78. 频率域图像滤波基础
【OpenCV 例程200篇】79. 频率域图像滤波的基本步骤
【OpenCV 例程200篇】80. 频率域图像滤波详细步骤
【OpenCV 例程200篇】81. 频率域高斯低通滤波器
【OpenCV 例程200篇】82. 频率域巴特沃斯低通滤波器
【OpenCV 例程200篇】83. 频率域低通滤波:印刷文本字符修复
【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器
【OpenCV 例程200篇】85. 频率域高通滤波器的应用
【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理
【OpenCV 例程200篇】87. 频率域钝化掩蔽
【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波
【OpenCV 例程200篇】89. 带阻滤波器的传递函数
【OpenCV 例程200篇】90. 频率域陷波滤波器
【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声
【OpenCV 例程200篇】92. 指数噪声、均匀噪声、椒盐噪声
【OpenCV 例程200篇】93. 噪声模型的直方图
【OpenCV 例程200篇】94. 算术平均滤波器
【OpenCV 例程200篇】95. 几何均值滤波器
【OpenCV 例程200篇】96. 谐波平均滤波器
【OpenCV 例程200篇】97. 反谐波平均滤波器
【OpenCV 例程200篇】98. 统计排序滤波器
【OpenCV 例程200篇】99. 修正阿尔法均值滤波器
【OpenCV 例程200篇】100. 自适应局部降噪滤波器

【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)相关推荐

  1. 【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)

    [OpenCV 例程200篇]44. 图像的灰度变换(伽马变换) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 线性 ...

  2. 【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)

    [OpenCV 例程200篇]43. 图像的灰度变换(对数变换) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 线性 ...

  3. 【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层)

    [OpenCV 例程200篇]42. 图像的灰度变换(比特平面分层) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  4. 【OpenCV 例程200篇】40. 图像分段线性灰度变换

    [OpenCV 例程200篇]40. 图像分段线性灰度变换 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 分段线性变 ...

  5. 【youcans 的 OpenCV 例程 200 篇】112. 滤波反投影重建图像

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  6. 【youcans 的 OpenCV 例程 200 篇】111. 雷登变换反投影重建图像

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  7. 【youcans 的 OpenCV 例程 200 篇】107. 退化图像的维纳滤波

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  8. 【OpenCV 例程200篇】80. 频率域图像滤波详细步骤

    [OpenCV 例程200篇]80. 频率域图像滤波详细步骤 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. 频 ...

  9. 【OpenCV 例程200篇】79. 频率域图像滤波的基本步骤

    [OpenCV 例程200篇]79. 频率域图像滤波的基本步骤 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. ...

最新文章

  1. 四因素三水平正交试验表_案例 | 螺栓装配失效试验研究
  2. C语言 将文件内容转换成Dump文件数据格式
  3. linux系统下安装 Loadrunner11(个人感觉不错儿)
  4. import org.apache.commons.codec.digest.DigestUtils; 未导入
  5. 【牛客 - 370H】Rinne Loves Dynamic Graph(分层图最短路)
  6. 【Todo】Java8新特性学习
  7. Scrum 冲刺博客集合
  8. 曾经采集朋友圈难倒多少Python大佬,今天手把手教你如何实现!
  9. OpenNI体感应用开发实战 (Kinect相机)
  10. ES6-----学习系列十三(类与对象)
  11. oracle双机python连接_Python 连接 Oracle 示例
  12. Ajax学习笔记-错误的处理-7
  13. 聊聊高并发系统之限流特技(一)作者:张开涛
  14. 冰点还原精灵有什么作用
  15. Python中关于with open file as 的用法
  16. 怎么预防和清除计算机病毒,预防和清除计算机病毒的方法
  17. 如何将caj格式文件转换成word文档
  18. 怎么写一篇优质爆款小红书种草文案?美妆产品为例
  19. 图片怎么转换为jpg格式的?照片如何在线转格式?
  20. React 全家桶入门教程 01

热门文章

  1. 腾讯视频如何设置关闭本地视频后自动打开主界
  2. Android如何回调编码后的音视频数据
  3. Java并发面试宝典,并发相关面试再也难不倒你!
  4. java 全双工服务器_利用Java实现串口全双工通讯_JAVA实例教程_IT部落
  5. mysql 平滑扩容_数据库秒级平滑扩容架构方案
  6. Kafka Shell 基本操作
  7. php正则表达式匹配逗号,数字和逗号PHP正则表达式只
  8. Spring Boot——@ConfigurationProperties与@Value的区别
  9. 内部类详解————静态内部类
  10. mysql 数据库访问层_MYSQL数据库访问层