伪彩色图像处理

这篇具有很好参考价值的文章主要介绍了伪彩色图像处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    伪彩色处理(pseudocoloring)是指根据一定准则给灰度值赋予彩色值的处理。宏观来说就是将黑白图像转化为彩色图像,或者是将单色图像变换成给定彩色分布的图像。由于人眼对彩色的分辨能力远远高于对灰度的分辨能力,所以将灰度图像转化成彩色表示,就可以提高对图像细节的辨别力。因此,伪彩色处理的主要目的是提高人眼对图像的细节分辨能力,以达到图像增强的目的。

目录

强度分层

灰度值到彩色变化

强度分层

  强度分层也叫灰度分层或灰度分割。将灰度图像按照灰度范围划分为不同的层级,然后给每个层级赋予不同颜色,从而增强不同层级的对比度。强度分层技术将灰度图转换为伪彩色图像,而且伪彩色图像颜色种类数目与强度分层数目一致。

  令f(x,y)表示位于空间位置(x,y)处像素的灰度值,[0,L]表示灰度值范围,0代表黑色,L代表白色。假定分割值l1,l2,l3....(0<l1<l2.....<L),将图像灰度划分为M+1个区间V1,V2....VM+1。灰度值到彩色的映射关系为,伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能,其中是第k个灰度区间有关的颜色。

from skimage import color, io
from matplotlib import pyplot as plt
import numpy as np

img = io.imread('a.jpg')
grayimg = color.rgb2gray(img)  # 转换为灰度图
plt.figure()
plt.imshow(grayimg, cmap='gray')
plt.axis('off')
plt.show()
rows, cols = grayimg.shape
labels = np.zeros([rows, cols])
for i in range(rows):
    for j in range(cols):
        if (grayimg[i, j] < 0.4):
            labels[i, j] = 1
        elif (grayimg[i, j] < 0.8):
            labels[i, j] = 2
        else:
            labels[i, j] = 3
psdimg = color.label2rgb(labels)  # 不同灰度区间采用不同颜色
plt.figure
plt.axis('off')
plt.imshow(psdimg)
plt.show()

灰度图:

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

强度分层图:

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

 你也可以修改灰度区间来改变颜色。

灰度值到彩色变化

  灰度值到彩色变换首先是对任何像素的灰度值进行三个独立的变换,然后将三个变换结果分别做为伪彩色图像的红,绿,蓝通道的亮度值。与强度分层技术相比,灰度值到彩色变换技术更通用。

表示位于空间(x,y)处的像素灰度值,,,表示经过变换后不同通道的亮度值。合成RGB彩色图像在空间位置(x,y)处颜色。

变换函数:

        

    

 

from matplotlib import pyplot as plt

# 定义灰度值到彩色变换
L = 255


def GetR(gray):
    if gray < L / 2:
        return 0
    elif gray > L / 4 * 3:
        return L
    else:
        return 4 * gray - 2 * L


def GetG(gray):
    if gray < L / 4:
        return 4 * gray
    elif gray > L / 4 * 3:
        return 4 * L - 4 * gray
    else:
        return L


def GetB(gray):
    if gray < L / 4:
        return L
    elif gray > L / 2:
        return 0
    else:
        return 2 * L - 4 * gray


# 设置字体格式
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.size'] = 15
x = [0, 64, 127, 191, 255]
# 绘制灰度图像到不同通道的映射关系
plt.figure()
R = []
for i in x:
    R.append(GetR(i))
plt.plot(x, R, 'r--', label='红色变换')
plt.legend(loc='best')

plt.figure()
G = []
for i in x:
    G.append(GetG(i))
plt.plot(x, G, 'g--', label='绿色变换')
plt.legend(loc='best')

plt.figure()
B = []
for i in x:
    B.append(GetB(i))
plt.plot(x, B, 'o--', markersize=5, label='蓝色变换')
plt.legend(loc='best')

# 绘制灰度图像到RGB映射关系
plt.figure()
plt.plot(x, R, 'r--')
plt.plot(x, G, 'g')
plt.plot(x, B, 'b')
plt.show()

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

 伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

 按照映射关系转换成为彩色图像:

from matplotlib import pyplot as plt
from skimage import io, color
import numpy as np

# 定义灰度值到彩色变换
L = 255


def GetR(gray):
    if gray < L / 2:
        return 0
    elif gray > L / 4 * 3:
        return L
    else:
        return 4 * gray - 2 * L


def GetG(gray):
    if gray < L / 4:
        return 4 * gray
    elif gray > L / 4 * 3:
        return 4 * L - 4 * gray
    else:
        return L


def GetB(gray):
    if gray < L / 4:
        return L
    elif gray > L / 2:
        return 0
    else:
        return 2 * L - 4 * gray


img=io.imread('G.jpg')
gray = color.rgb2gray(img)*255  # 彩色转换灰度图
color = np.zeros(img.shape, dtype='uint8')
for i in range(img.shape[0]):
    for j in range(img.shape[1]):
        r, g, b = GetR(gray[i, j]), GetG(gray[i, j]), GetB(gray[i, j])
        color[i, j, :] = (r, g, b)
        # 显示
plt.figure()
plt.axis('off')
plt.imshow(img)
plt.figure()
plt.axis('off')
plt.imshow(gray, cmap='gray')  # 显示灰度图
plt.figure()
plt.axis('off')
plt.imshow(color)  #显示伪彩色图像
plt.show()

原图:

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

灰度图:

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

 伪彩色图像:

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

 你可以自己使用自己的图片,如果使用自己的图片:读取时标明路径,一般我放在与程序同一路径下:

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能

 你也可以使用skimage.data库里自带的图片,例如:

from matplotlib import pyplot as plt
from skimage import data
img=data.astronaut()
plt.imshow(img)
plt.axis('off')
plt.show()

伪彩色处理,图像处理,计算机视觉,python,图像处理,人工智能文章来源地址https://www.toymoban.com/news/detail-535226.html

到了这里,关于伪彩色图像处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机视觉(2)——图像预处理

    二、图像预处理 2.1 介绍  2.2 特征提取方法 2.2.1 直方图 2.2.2 CLAHE 2.2.3 形态学运算 2.2.4 空间域处理及其变换 2.2.5 空间域分析及变换  (1) 均值滤波 (2)中值滤波 (3)高斯滤波 (4) 梯度Prewitt滤波 (5) 梯度Sobel滤波 (6) 梯度Laplacian滤波 (7) 其他滤波  2.2.6 频域分

    2024年02月03日
    浏览(63)
  • 图像处理/计算机视觉期刊投稿经验

    我不配,以后有机会再说吧。 我也不配,以后有机会再说吧。 2022年投过,一个月之后被编辑immediate reject, 原因是“the scope not aligning well with the theme interest and/or desired genres of TSP”。在邮件的末尾,编辑表示manuscript的选题“well motivated”并且“interesting”,主要担忧是所用到的

    2024年02月08日
    浏览(55)
  • 计算机视觉图像处理常用方法汇总

    光线进入眼睛:当光线从一个物体反射或散射出来,进入人的眼睛时,它们通过角膜和晶状体进入眼球内部。 聚焦光线:角膜和晶状体将光线聚焦在视网膜上。晶状体可以通过调整其形状来调节聚焦距离,使物体的图像清晰地映射在视网膜上。 光敏细胞感受光线:视网膜是

    2024年02月07日
    浏览(55)
  • 机器视觉、图像处理和计算机视觉:概念和区别

    机器视觉、图像处理和计算机视觉:概念和区别nbsp; 机器视觉、图像处理和计算机视觉是相关但有区别的概念。 机器视觉主要应用于工业领域,涉及图像感知、图像处理、控制理论和软硬件的结合,旨在实现高效的运动控制或实时操作。 图像处理是指利用计算机对图像进行

    2024年02月06日
    浏览(47)
  • 计算机视觉实验:图像处理综合-路沿检测

    目录 实验步骤与过程 1. 路沿检测方法设计 2. 路沿检测方法实现 2.1 视频图像提取 2.2 图像预处理 2.3 兴趣区域提取 2.4 边缘检测 ​​​​​​​2.5 Hough变换 ​​​​​​​2.6 线条过滤与图像输出 3. 路沿检测结果展示 4. 其他路沿检测方法 实验结论或体会 实验内容: 针对

    2024年02月14日
    浏览(49)
  • 【计算机视觉】【图像处理综合应用】路沿检测

    实验内容: 针对给定的视频,利用图像处理基本方法实现道路路沿的检测; 提示:可利用 Hough 变换进行线检测,融合路沿的结构信息实现路沿边界定位(图中红色的点位置)。 处理视频文件 处理视频文件的主要流程如下: 读取视频 → 逐帧提取 → 路沿检测 → 逐帧保存

    2024年02月05日
    浏览(58)
  • 图像处理与计算机视觉--第五章-图像分割-Canny算子

    2.1.Canny算子简单介绍 Canny算子是一种非常常用的边缘检测算子,其效果图如下所示: 2.2.Canny算子边缘检测指标 Canny算子是基于边缘检测来实现的,那么边缘检测的指标如下所示: (1)好的信噪比,即将非边缘点判定为边缘点的概率要低。 (2)高定位,检测出的边缘要在实际边缘中

    2024年02月07日
    浏览(56)
  • 利用C++进行图像处理与计算机视觉

    在C++中进行图像处理与计算机视觉是一个有趣且具有挑战性的任务。C++是一种高效的编程语言,能够提供足够的灵活性和性能,以处理复杂的图像处理和计算机视觉算法。在本文中,我们将介绍如何使用C++进行图像处理和计算机视觉,以及一些常见的技术和库。 图像处理基础

    2024年01月16日
    浏览(50)
  • 【OpenCV】计算机视觉图像处理基础知识

    目录 前言 推荐 1、OpenCV礼帽操作和黑帽操作 2、Sobel算子理论基础及实际操作 3、Scharr算子简介及相关操作 4、Sobel算子和Scharr算子的比较 5、laplacian算子简介及相关操作 6、Canny边缘检测的原理 6.1 去噪 6.2 梯度运算 6.3 非极大值抑制 6.4 滞后阈值 7、Canny边缘检测的函数及使用

    2024年02月05日
    浏览(57)
  • 图像处理与计算机视觉--第五章-图像分割-自适应阈值分割

      在图片处理过程中,针对铺前进行二值化等操作的时候,我们希望能够将图片相应区域内所有的信息提供保留。实验室环境下,相应的素材是模板化的,但是将实验室方法应用于现实环境中时,我们会发现光影环境对于效果的影响其实是很大的。在这种情况下进行处理,

    2024年02月07日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包