美文网首页数字图像处理入门
[图像增强][灰度变换]2. 分段线性变换

[图像增强][灰度变换]2. 分段线性变换

作者: 砥砺前行的人 | 来源:发表于2021-11-07 20:40 被阅读0次

1. 基本原理

分段线性变换,顾名思义,灰度变换在不同的像素值区间有不同的转换关系,实现如下形式:


\begin{equation} f(x)=\left\{ \begin{array}{rcl} \frac{f_3-f_2}{c-b}(x-b) + f_3 & & { b < x \leq c}\\ \frac{f_2-f_1}{b-a}(x-a) + f_2 & & { a < x \leq b}\\ \frac{f_1}{a}x & & {x \leq a}\end{array} \right. \end{equation}

上式为分段函数的表达式,此分段函数的实际作用是增加[a,b]的对比度,削弱 [0, a], [b, c] 对比度。

2. 使用场景

可用于增强图片某一像素值区域内的对比度,突出 ROI。

3. 代码示例

考虑如下灰度图像:


此图我做了特殊处理,将像素通过线性变换,使它的对比度相当的小,现在我们要通过增大对比度使它的图像变得更清晰

代码如下:

import cv2 as cv
import numpy as np
from math import *
import matplotlib.pyplot as plt


# 按灰度读取一张图片
img = cv.imread("cell2.png",cv.IMREAD_GRAYSCALE)
# plt_hist(img)

c = 255
b = 20
a = 10

f3 = 255
f2 = 40
f1 = 10

dst = np.zeros_like(img)

for row in range(len(img)):
    for column in range(len(img[row])):
        if img[row][column] < 10:
            dst[row][column] = f1 * img[row][column] / a
        elif 10 <= img[row][column] < 75:
            dst[row][column] = (f2 - f1) * (img[row][column] - a) / (b-a) + f1
        elif 75 <= img[row][column] < 255:
            dst[row][column] = (f3 - f2) * (img[row][column] - b) / (c-b) + f2         

plt.figure()
plt.subplot(2,2,1)
plt.imshow(img, cmap='gray')
plt.subplot(2,2,2)
plt.imshow(dst, cmap='gray')
plt.subplot(2,2,3)
plt.hist(img.ravel(), 256, [0, 256])
plt.subplot(2,2,4)
plt.hist(dst.ravel(), 256, [0, 256])
plt.show()

输出结果如下:


通过观察直方图我们发现,处理后的图像的像素值分布变宽,对比度变大,[10,20]像素值区域被线性扩展到[10,40],图像变得更加清晰。

相关文章

  • [图像增强][灰度变换]2. 分段线性变换

    1. 基本原理 分段线性变换,顾名思义,灰度变换在不同的像素值区间有不同的转换关系,实现如下形式: 上式为分段函数...

  • [图像增强][灰度变换]3. 对数非线性变换

    1. 基本原理 对数变换,属于非线性变换,变换关系如下(举例): 表达式形式如下: 我们通过二次导数可知,随着输入...

  • exp1-空间域图像增强

    图像灰度变换 计算显示图像直方图、直方图均衡化 空间域图像平滑、锐化

  • 图片处理-opencv-9.图像的灰度变换

    图像灰度线性变换 图像的灰度线性变换是通过建立灰度映射来调整原始图像的灰度,从而改善图像的质量,凸显图像的细节,提...

  • 灰度变换

    灰度变换是针对与空间域中的图像,直接对每一个像素点进行操作,灰度变换一般是用一个函数来将原图像转化成另一个图像,以...

  • 图像灰度变换

    1.灰度变换指对图像的单个像素进行操作,主要以对比度和阈值处理为目的。其变换形式如下。 其中,T 是灰度变换函数;...

  • 2、灰度变换函数

    1、imadjust 和 stretchlim imadjust 用于对灰度级图像进行灰度变换。 除了 f 和 ...

  • [图像增强][灰度变换]1. 反转变换

    1. 基本原理 反转变换,属于线性变换,指在像素的灰度级上,实现如下形式: 其中 r 为原像素值,L 为 k 位灰...

  • [图像增强][灰度变换]5. 直方图均衡化

    1. 基本原理 灰度直方图,表示图像中不同灰度值所出现的频数,通过坐标轴绘制成直方图用以表示。考虑如下图片: 灰度...

  • [图像增强][灰度变换]4. 二值化

    1. 基本原理 二值化,属于非线性变换,变换关系可如下: 使用二值化,最大的难点是确定阈值,例如想要通过阈值突出R...

网友评论

    本文标题:[图像增强][灰度变换]2. 分段线性变换

    本文链接:https://www.haomeiwen.com/subject/ykhezltx.html