3.4 图像灰度变换之分段线性变换

数字图像处理——图像增强之点处理 一、处理内容(1)获取一帧图像,对该图像进行正变换、反变换、指数变换、对数变换、幂指数变换,并分析各种变换中参数对增强图像的影响;(2)获取一帧图像,对该图像进行分段线性变换处理,并分析各种变换中参数对增强图像的影响。二、基本原理2.1线性变换    图像中常会出现对比度不够的情况,这可能是因图像记录装置的动态范围太小所至,也可能是由于摄影过程中原先曝光不足所造成的。增大对比度的方法是简便的,可通... 阅读详情
AI摘要

本文探讨了图像处理中的分段线性变换原理及应用,包括对比度拉伸、灰度级分层和比特平面分层等示例,通过代码实现展示了不同变换对图像效果的影响。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在前面章,我们介绍了什么是图像的灰度变换,以及灰度变换中的图像反转,对数变换和幂律变换。图像变换的函数式可以表示如下: g ( x , y ) = F ( f ( x , y ) ) f ( x , y ) 是位于图像点 ( x , y ) 处的像素的值 g(x,y)=F(f(x,y))\quad f(x,y)是位于图像点(x,y)处的像素的值 g(x,y)=F(f(x,y))f(x,y)是位于图像点(x,y)处的像素的值这一章我们来讨论图像的分段线性变换。


1. 原理

分段线性变换,顾名思义就是针对不同灰度级采用不同的变换函数,变换函数如下:
g ( x , y ) = { F 1 ( f ( x , y ) ) f ( x , y ) < x 1 F 2 ( f ( x , y ) ) x 1 ≤ f ( x , y ) < x 2 F 3 ( f ( x , y ) ) f ( x , y ) ≥ x 2 g(x,y) = \begin{cases} F_1(f(x,y)) & f(x,y)<x1 \\ F_2(f(x,y)) & x1 \leq f(x,y) < x2 \\ F_3(f(x,y)) & f(x,y) \geq x2 \\ \end{cases} g(x,y)=⎩ ⎨ ⎧​F1​(f(x,y))F2​(f(x,y))F3​(f(x,y))​f(x,y)<x1x1≤f(x,y)<x2f(x,y)≥x2​ 其中 f ( x , y ) 是位于图像点 ( x , y ) 处的像素的值 , g ( x , y ) 是变换后的像素值, F 1 , F 2 , F 3 是不同定义域的变换函数 其中\quad f(x,y)\quad 是位于图像点(x,y)处的像素的值, \quad g(x,y)是变换后的像素值,F_1,F_2,F_3是不同定义域的变换函数 其中f(x,y)是位于图像点(x,y)处的像素的值,g(x,y)是变换后的像素值,F1​,F2​,F3​是不同定义域的变换函数

1.1 代码实现

import numpy as np
import matplotlib.pyplot as plt


def linear(p1, p2, x):
    """
    计算通过两个点定义的直线函数在给定定义域内的值域。
    参数:
    p1: 第一个点的坐标 (x1, y1)
    p2: 第二个点的坐标 (x2, y2)
    x: 定义域的范围
    """

    # 计算斜率和截距
    k = (p2[1] - p1[1]) / (p2[0] - p1[0])
    b = p1[1] - k * p1[0]

    # 计算定义域内的最小值和最大值
    y = k * x[:] + b

    return np.uint8(y)


if __name__ == '__main__':
    # 先取两个点,用来确定分段函数的中间线段
    r1, s1 = 60, 20
    r2, s2 = 180, 230

    # 定义 x 的范围
    x1 = np.arange(0, r1)  # 第一段函数的定义域
    x2 = np.arange(r1, r2)  # 第二段函数的定义域
    x3 = np.arange(r2, 255)  # 第三段函数的定义域

    y1 = linear((0, 0), (r1, s1), x1)
    y2 = linear((r1, s1), (r2, s2), x2)
    y3 = linear((r2, s2), (255, 255), x3)

    # 绘制图像
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['font.size'] = 15
    plt.figure(figsize=(10, 10))
    plt.xlabel('输入值')
    plt.ylabel('输出值')
    plt.title('分段线性变换')
    plt.xlim(0, 255)  # 设置 x 轴的范围
    plt.ylim(0, 255)  # 设置 y 轴的范围
    plt.grid(True)

    plt.plot(x1, y1, label='第一段', color='blue')
    plt.plot(x2, y2, label='第二段', color='green')
    plt.plot(x3, y3, label='第三段', color='red')

    plt.text(r1, s1, '({0}, {1})'.format(r1, s1), verticalalignment='bottom', horizontalalignment='right')
    plt.text(r2, s2, '({0}, {1})'.format(r2, s2), verticalalignment='bottom', horizontalalignment='right')

    plt.legend()
    plt.savefig("image/tmp.png")
    plt.show()

1.2 效果图

在这里插入图片描述
上图中的变换函数如下:
g ( x , y ) = { 1 3 f ( x , y ) 0 < f ( x , y ) < 60 7 4 f ( x , y ) − 85 60 < f ( x , y ) < 180 29 19 f ( x , y ) − 2550 19 180 < f ( x , y ) < 255 g(x,y) = \begin{cases} \frac{1}{3}f(x,y) & 0 < f(x,y)<60 \\ \frac{7}{4}f(x,y)-85 & 60< f(x,y) < 180 \\ \frac{29}{19}f(x,y)-\frac{2550}{19} & 180 < f(x,y)<255 \\ \end{cases} g(x,y)=⎩ ⎨ ⎧​31​f(x,y)47​f(x,y)−851929​f(x,y)−192550​​0<f(x,y)<6060<f(x,y)<180180<f(x,y)<255​ 其中 f ( x , y ) 是位于图像点 ( x , y ) 处的像素的值 , g ( x , y ) 是变换后的像素值 其中\quad f(x,y)\quad 是位于图像点(x,y)处的像素的值, \quad g(x,y)是变换后的像素值 其中f(x,y)是位于图像点(x,y)处的像素的值,g(x,y)是变换后的像素值

2. 示例

2.1 示例一:对比度拉伸

图像对比度小的特点是,像素值分布比较集中,比如下面的例子中像素值的最小值是93,最大值是138,也就是整个像素都集中在(93 ~ 138),这种情况像素的对比度非常小,因此我们才会考虑拉伸图像的对比度,即将像素值的范围拉大到(0 ~ 255),其分段变换函数为:
g ( x , y ) = { 0 f ( x , y ) = 93 F ( f ( x , y ) ) 93 ≤ f ( x , y ) < 138 255 f ( x , y ) = 138 g(x,y) = \begin{cases} 0 & f(x,y)=93 \\ F(f(x,y)) & 93 \leq f(x,y) < 138 \\ 255 & f(x,y) = 138 \\ \end{cases} g(x,y)=⎩ ⎨ ⎧​0F(f(x,y))255​f(x,y)=9393≤f(x,y)<138f(x,y)=138​

2.1.1 示例代码

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv


def contrastStretch(p1, p2, img):
    dst = np.zeros_like(img)

    # 分段函数中,中间那段的斜率和截距
    k = (p2[1] - p1[1]) / (p2[0] - p1[0])
    b = p1[1] - k * p1[0]

    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            if img[i, j] <= p1[0]:
                dst[i, j] = 0
            elif img[i, j] >= p2[0]:
                dst[i, j] = 255
            else:
                dst[i, j] = k * img[i, j] + b

    return np.uint8(dst)


if __name__ == '__main__':

    # 读取灰度图像
    imgGray = cv.imread('Image/Fig0305.tif', 0)

    min, max = np.min(imgGray), np.max(imgGray)

    img1 = contrastStretch((min, 0), (max, 255), imgGray)
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.figure(figsize=(7, 4))
    titleList = ["Original Image", "对比度拉伸"]
    imageList = [imgGray, img1]
    for i in range(2):
        plt.subplot(1, 2, i + 1), plt.title(titleList[i]), plt.axis('off')
        plt.imshow(imageList[i], vmin=0, vmax=255, cmap='gray')
    plt.tight_layout()
    plt.savefig("Image/tmp.png")
    plt.show()

2.1.2 示例效果

在这里插入图片描述
从上面的效果图可以看出,原图的对比度非常低,因为原图的像素值范围是(93 ~ 138),右边是拉伸对比度后的效果图( (93 ~ 138) -> (0, 255) ),可以看出拉伸后的效果非常好。

2.2 示例二:灰度级分层

图像的对比度小,我们并不需要拉伸整个对比度,只需要对关注的区域(或者说某个区间的像素)进行变换处理(比如增强,也就是变亮处理),其分段变换函数为:
g ( x , y ) = { F 1 ( f ( x , y ) ) f ( x , y ) < 155 255 155 ≤ f ( x , y ) < 245 F 2 ( f ( x , y ) ) f ( x , y ) > = 245 g(x,y) = \begin{cases} F_1(f(x,y)) & f(x,y)<155 \\ 255 & 155 \leq f(x,y) < 245 \\ F_2(f(x,y)) & f(x,y) >= 245 \\ \end{cases} g(x,y)=⎩ ⎨ ⎧​F1​(f(x,y))255F2​(f(x,y))​f(x,y)<155155≤f(x,y)<245f(x,y)>=245​ ( 155 , 245 ) 是我们需要增强的区域,也就是像素值属于这一区间的区域 (155,245)是我们需要增强的区域,也就是像素值属于这一区间的区域 (155,245)是我们需要增强的区域,也就是像素值属于这一区间的区域

2.2.1 示例代码

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv


def contrastStretch1(v1, v2, img):
    dst = img.copy()
    # 像素值在区间 (v1, v2) 范围之内的,直接变换为 255
    # 像素值不在该区间的,不做处理
    dst[(img[:, :] >= v1) & (img[:, :] <= v2)] = 255

    return np.uint8(dst)


def contrastStretch2(v1, v2, img):
    dst = np.zeros_like(img)
    # 像素值在区间 (v1, v2) 范围之内的,直接变换为 255
    # 像素值不在该区间的,不做处理
    dst[(img[:, :] >= v1) & (img[:, :] <= v2)] = 255

    return np.uint8(dst)


if __name__ == '__main__':

    # 读取灰度图像
    imgGray = cv.imread('Image/Fig0306.tif', 0)

    min, max = 155, 245

    img1 = contrastStretch1(min, max, imgGray)
    img2 = contrastStretch2(min, max, imgGray)

    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.figure(figsize=(9, 4))
    titleList = ["Original Image", "灰度级分层", "二值化"]
    imageList = [imgGray, img1, img2]
    for i in range(3):
        plt.subplot(1, 3, i + 1), plt.title(titleList[i]), plt.axis('off')
        plt.imshow(imageList[i], vmin=0, vmax=255, cmap='gray')
    plt.tight_layout()
    plt.savefig("Image/tmp.png")
    plt.show()

2.2.2 示例效果

在这里插入图片描述

2.3 示例三:比特平面分层

像素值可以转换成8位二进制,如果图像的所有像素值都转为8位,那么空间上我们就可以得到8个比特位图像,这个就叫比特平面分层。

2.3.1 示例代码

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv


def bitPlane(img, bit):
    dst = np.zeros(img.shape, np.uint8)

    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            bitStr = np.binary_repr(img[i, j], width=8)  # 将像素值转为 8 位二进制
            bitNum = int(bitStr[bit - 1])  # 获取第 bit 位的标识
            if bitNum == 1:
                dst[i, j] = 255

    return dst


if __name__ == '__main__':

    # 读取灰度图像
    imgGray = cv.imread('Image/Fig0307.tif', 0)

    img1 = bitPlane(imgGray, 1)
    img2 = bitPlane(imgGray, 2)
    img3 = bitPlane(imgGray, 3)
    img4 = bitPlane(imgGray, 4)
    img5 = bitPlane(imgGray, 5)
    img6 = bitPlane(imgGray, 6)
    img7 = bitPlane(imgGray, 7)
    img8 = bitPlane(imgGray, 8)

    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.figure(figsize=(10, 5))
    titleList = ["Original Image", "第一位", "第二位", "第三位", "第四位", "第五位", "第六位", "第七位", "第八位"]
    imageList = [imgGray, img1, img2, img3, img4, img5, img6, img7, img8]
    for i in range(9):
        plt.subplot(3, 3, i + 1), plt.title(titleList[i]), plt.axis('off')
        plt.imshow(imageList[i], vmin=0, vmax=255, cmap='gray')
    plt.tight_layout()
    plt.savefig("Image/tmp.png")
    plt.show()

2.3.2 示例效果

在这里插入图片描述
通过上图比较可以发现,高比特位平面有大量具有视觉意义的数据,大家自己思考一下为什么比特位分层为什么是分段线性变换。

分段线性变换 直方图均衡化 阅读详情

相关推荐

3.4 图像灰度变换之分段线性变换实战:从原理到OpenCV实现

本文深入解析了图像处理中的分段线性变换技术,从核心原理到OpenCV实战实现。通过将灰度值划分为不同区间并应用特定线性公式,该方法能精准增强图像暗部、中间调或高光区域的细节,有效解决对比度不足、目标不突出等问题。文章结合代码示例,详细阐述了其在对比度拉伸、灰度级分层等经典场景中的应用与参数调优心法。

weixin_29057065的博客 348

数字图像处理之点运算---分段线性变换

一.理论概要 1.对比度拉伸 利用分段线性函数来增强图像对比度的方法实际上增强原图各部分的反差,即增加图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。 分段的灰度拉伸可以更加灵活的控制输出灰度直方图的分布,可以有选择性的拉伸某段灰度区间,以改善输出图像。如果一副图像集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来扩展(斜率>1)物体的灰度区间以改善图像;同样,如果图像的灰度集中在较亮的...

jxqbuct的博客 2万+

3.4 图像灰度变换之动态分段线性增强

本文深入探讨了图像处理中的动态分段线性增强技术,相较于传统的静态方法,它能根据每张输入图像的灰度直方图自动调整变换参数,实现更智能、自适应的对比度提升。文章以Python代码实战为核心,详细讲解了基于百分比截断的动态增强实现方法,并分享了其在视频流与医学影像等实际场景中的应用与优化技巧。

weixin_29056781的博客 244

图像变换——分段线性变换

灰度变换法:         一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。由于形成图像的系统亮度有限,常出现对比度不足的问题,使人眼观看图像时视觉效果很差,通过灰度变换法可以大大改善人的视觉效果。灰度变换法又可分为三种:线性分段性及分线性变换。 (1)线性变换                  假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)

专注 机器学习+人工智能 1万+

数字图像处理——第三章(灰度变换与空间滤波(空间域))

本章主要在空间域对图像及像素进行处理。空间域的处理分为灰度变换和空间滤波。灰度变换是对图像的单个像素进行操作,主要以对比度和阈值处理为目的。空间滤波涉及改善性能的操作。 一、背景知识 ...

denglavender的博客 8120

空域图像增强-图像灰度变换

本文主要介绍了如何使用MATLAB计算出数字图像的灰度直方图, 如何使用MATLAB自带函数实现灰度直方图的均衡化, 以及如何用像素逐点操作的方式实现图像灰度的线性变换和分段线性变换.

weixin_42048463的博客 2227

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波4 - 分段线性变换 - 对比度拉伸

目录分段线性变换对比度拉伸最大最小值拉伸 分段线性变换 优点 形式可以任意复杂 缺点 要求用户输入很多参数 对比度拉伸 光照不足、成像传感器的动态范围偏小、图像获取过程中镜头孔径的设置错误 点(r1,s1)和点(r2,s2)(r_1, s_1)和点(r_2, s_2)(r1​,s1​)和点(r2​,s2​)的位置控制变换函数的形状 图3,令(r1,s1)=(rmin,0),(r2,s2)=(rmax,L−1)(r_1, s_1) = (r_{min}, 0), (r_2, s_2) =

jasneik的博客 1633

灰度变换-分段线性函数

分段线性函数同样是点运算,基于像素的图像增强,也就是对比度拉伸。大概的原理就是:将不同灰度区间的灰度值经过不同的映射函数映射到另一个灰度区间的过程。因为使用变换函数的个数是三个,所以我们经常使用的分段线性函数是三段线性变换函数对应的数学公式为a = 1 ,b = 0 时,恒等函数,不改变图像的灰度值a >1 , 对比度增强0 < a < 1 , 对比度减弱b 控制图像的亮度,b > 0 图像变亮,b < 0 图像变弱对比度:定义为图像中最高和最低灰度级之间的灰度差。

Henry的博客 6309

基于matlab的图像线性灰度变换

1.基本线性灰度变换 只需要记住一个公式:g(x, y) = f(x, y) * tan a 当 tan a >1时,会使得图像变亮 当tan a =1时,前后图像不发生变化 当tan a<1时,图像变暗 Image =im2double(rgb2gray(imread('hehua.bmp'))); [h, w] = size(Image); Image1 = zer...

qq_39197555的博客 1万+

扫地机器人:从仿真到决策,一个完整SLAM导航系统的自研之路

本文详细记录了从零开始自研扫地机器人SLAM导航系统的全过程,涵盖ROS-Gazebo仿真系统搭建、地图预处理优化、全覆盖规划算法迭代等关键技术。通过三次算法升级,最终实现92%的清洁效率,并分享DWA调参、状态机设计等实战经验,为开发者提供从仿真到落地的完整解决方案。

weixin_29053695的博客 352

超详细!思岚S2激光雷达hector_mapping建图

使用思岚S2激光雷达,在ros平台上利用hector_mapping功能包实现建图功能

m0_50965539的博客 5590

图像增强(空间域)——灰度变换

灰度变换直接灰度变换说明原理常见变换直方图说明性质直方图均衡化图像的代数运算说明 直接灰度变换 说明 逐点运算,按照一定的变换关系,逐点该点原灰度图像中每一个像素灰度值,但不改变空间位置关系。 原理 灰度图像的线性拉伸。若灰度级局限在很小的范围内(灰度级0~255),显示出来的是模糊不清、没有层次感的图像;通过线性变换对每个像素点做线性变换,有效改变你图像视觉效果,即扩大原始的灰度等级范围,显得有层次。 常见变换 因为是点运算,图像是二维,由二维数组表示即f(x,y)表示灰度值。 变换公式::g(x,y)=

weixin_47421560的博客 4278

Windows下用Caddy一键搞定LiveKit本地HTTPS部署(含自签名证书避坑指南)

本文详细介绍了在Windows本地开发环境中,如何利用Caddy服务器一键部署支持HTTPS和WSS的LiveKit实时通信服务。文章重点解决了自签名证书的生成与配置难题,提供了完整的避坑指南和防火墙设置,帮助开发者快速搭建安全的WebRTC测试环境,实现局域网内的实时音视频互动。

weixin_29274969的博客 578

MATLAB图形图像处理——图像灰度变换

MATLAB图形图像处理——图像灰度变换,介绍matlab处理图像的基础知识、图像灰度变换的基础知识。 通过直方图均衡化改变图像对比度和亮度,将模糊的图像变清晰。

isolation_s的博客 1万+

INS/伪距组合导航(2)

伪距惯导组合导航

u014430081的博客 827

信号完整性之串扰

1.前言 串扰(Crosstalk)是指信号线之间由互感、互容而引起的耦合,由于这种耦合的存在,当某一信号线发生电平翻转时,在附近的信号线上将感应到一定程度的噪声。 2. 电路设计中抑制串扰的方法 2.1 控制高速信号线之间的间距和平行走线的长度 多个高速信号长距离平行走线时,其间距应遵循3W原则,如下图所示: 3W原则指两相邻信号线的中心间距不少于信号线宽度的3倍,当满足3W原则时,信号线之间...

sinat_15677011的博客 1万+

4.Matlab图像灰度变换增强(线性变换和直方图均衡化)

matlab实现图像灰度变换

weixin_44108271的博客 1万+

Visual Studio 2022+Qt6.5.3安装教程+环境配置+创建Qt项目+乱码插件+运行很完美(16岁孩子也能看懂)

Visual Studio 2022+Qt6.5.3安装教程+环境配置+创建Qt项目+乱码插件+运行很完美(16岁孩子也能看懂)

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1188

图像增强---灰度变换

目录一.基本概念1.图像的灰度变换二.灰度线性变换1.线性变换2.分段线性变换3.非线性变换 一.基本概念 1.图像的灰度变换 设原图像为f(m,n),处理后为g(m,n),则对比度增强可表示为: 其中,T[i]表示增强图像和原图像的灰度变换关系(函数)。 二.灰度线性变换 1.线性变换 设原图像灰度值f(m,n)∈[a,b],线性变换后的取值g(m,n)∈[c,d],变换关系为: 其中称为变换函数(直线)的斜率。 2.分段线性变换 (1)扩展兴趣的,牺牲其他 对于感兴趣的[a,b]区间,采用斜率大于

luran的博客 8597

【AutoSAR CAN】04 - 如何使用Davinci Configurator Pro工具配置CAN的波特率

改参数为Tx Arbitration start delay value ,可用于延迟仲裁过程的起始点,用来补偿CAN收发器及线路的传输延迟,以优化传输性能。有关详细信息,请参阅硬件手册。该参数指定采样点模式,即选择多少个采样点的数量,如果选择了每比特三个样本选项,则该点标记第三个样本的位置;我们要配置CAN的波特率,其实就是要弄明白 CAN 控制器的位时序即可,具体的理论部分和EB的配置部门可参考文章《该参数表示传播延迟有多少个时间单位Tq,即上文中的Propagation delay/PROGSEG。.

2601

AI原生应用架构师指南:系统化思维框架解析

随着ChatGPT、Stable Diffusion等AI技术的普及,「AI原生应用」(AI-Native Application)已从概念走向实践。传统应用以「功能逻辑」为核心(比如用代码写死的购物车规则),而AI原生应用以「数据+模型」为核心(比如根据用户行为动态推荐商品)。本文的目的是为架构师提供一套系统化思维框架如何区分「伪AI应用」和「真AI原生应用」?数据、模型、业务场景三者如何协同设计?架构师需要关注哪些关键技术节点?如何避免「为了AI而AI」的陷阱?

AI Python 编程之道的博客 490

OpenCV数字图像处理基于C++:灰度变换

介绍了灰度变换的基本概念和操作

qq_43784519的博客 6062

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【youcans 的图像处理学习课】6. 灰度变换与直方图处理

本节介绍图像的灰度变化与直方图处理,提供完整例程和运行结果:二值处理,反色变换,线性变换,分段线性变换,对比度拉伸,灰度级分层,非线性变换,直方图处理,直方图均衡化,直方图匹配,局部直方图处理,统计量增强,反向投影。 1. 安装与环境配置 2. 图像读取与显示 3. 图像的创建与修改 4. 图像的叠加与混合 5. 图像的几何变换 6. 灰度变换与直方图处理 7. 空间域图像滤波 8. 频率域图像滤波......

youcans的博客 6772

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数字图像处理——灰度变换

给定一幅M行N列的L级灰度图像绝对灰度直方图h(rk) = nkrk第k个灰度级的取值,nk灰度级为rk的像素数目,k = 0,1,… , L-1h的和为MxN归一化灰度直方图p(rk) = h(rk)/n = nk/M x Np的和为1归一化累计灰度直方图T(rk) = ∑i=0kp(riT(rk)单调递增T(rk) = p(rk) + T(rk-1), 1≤k≤L-1T(rL-1) = 1。

wnYYfh的博客 2103

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数字图像处理——第三章 空间域图像增强(灰度变换和直方图处理)

文章目录空间域图像增强1. 背景知识2. 基本灰度变换2.1 图像反转2.2 对数变换2.3 幂次变换2.4 分段线性变换函数2.4.1 对比拉伸2.4.2 灰度切割2.4.3 位图切割3. 基本灰度变换函数3.1 函数imadjust和stretchlim3.2 函数im2uint84. 直方图处理4.1 生成并绘制图像直方图4.2 直方图均衡化 空间域图像增强 图像增强是图像处理中最具吸引力的领域之一,增强处理的首要目标是处理图像,对图像进行加工,使其比原始图像更适合特定的应用。空间域是指图像平面本身,

Flamingo的博客 7551
上一篇: 3.3 图像灰度变换之伽马变换
下一篇: 4.1 直方图绘制
Four o'clock
博客等级 码龄8年 305粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值