图像处理学习笔记(一)

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

图像处理学习笔记(一)

一、基础知识

1、彩色图像
(1)RGB

RGB色彩模式是工业界的一种颜色标准,通过对红R、绿G、蓝B三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。
图像中每个像素都分成R、G、B三个基色分量,每个颜色分量都有对应灰度值[0,255],每个颜色分量可以用8位表示(还有10位表示的),若位深为8则RGB图像能构造出2的24次方种色彩,即24位色。RGB包含RGB555、RGB565、RGB24、RGB32等格式。图片大小(bit)=宽像素×高像素×位深×3。
图像处理学习笔记(一),图像处理,图像处理,python
注:文中图片源于网络。

(2)HSV

HSV是根据颜色的直观特性创建的一种颜色空间,也称六角锥体模型。H色相表示色彩信息,取值为0-360°,如按红色逆时针计算,红色0°、绿色120°、蓝色240°;S饱和度,取值为0.0-1.0;V色明度,取值为0.0(黑色)-1.0(白色),V=max(R,G,B)。
图像处理学习笔记(一),图像处理,图像处理,python

(3)HSI

HSI颜色模型同样是从人的视觉系统出发。H定义颜色的频率,称为色调;S表示颜色的深浅程度,称为饱和度;I表示强度或亮度,I=(R+G+B)/3。
注:饱和度是一种描述颜色纯净度的属性,单一颜色光的饱和度最高,掺入白光越多饱和度越低。饱和度=单色光强度/(单色光强度+白光强度)。
图像处理学习笔记(一),图像处理,图像处理,python

(4)CMYK

CMYK颜色模型是一种应用相减原理的色彩系统,它的颜色来源于反射光线。当所有的颜色叠加在一起时会产生黑色,当没有任何颜色加入的时候为白色。CMYK颜色模型包括青(cyan)、品红(magenta)、黄(yellow)和黑(black),为避免与blue混淆,黑色用K表示。彩色打印机和彩色印刷都是采用这个原理。CMY是色料三原色,利用油墨对光的吸收、透射和反射,产生不同的颜色。
图像处理学习笔记(一),图像处理,图像处理,python

(5)YUV

YUV是一种颜色编码方法,常使用在各个视频处理组件中。YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。Y表示明亮度,也就是灰阶值,U和V表示的色度,描述影像色彩及饱和度,用于指定像素的颜色。与RGB模型相比,YUV模型最大的优点在于信号传输时只需占用极少的频宽。当白光的亮度用Y来表示时,它和红、绿、蓝三色光的关系可用下式描述:Y=0. 299R+0. 587G+0. 114B,这就是常用的亮度公式。

(6)YCbCr

YCbCr是在世界数字组织视频标准研制过程中作为ITU - R BT.601 建议的一部分,其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致,Cb、Cr 同样都指色彩,只是在表示方法上和U、V不同。在YUV家族中,YCbCr是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。Y指亮度分量,Cb指蓝色色度分量,Cr指红色色度分量。
注:还有其他彩色图像模型,如YIQ、Lab等,此处不做概述。

2、灰度图像

灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值)。灰度范围为0-255,当灰度为255的时候,表示最亮(纯白);当灰度为0的时候,表示最暗(纯黑)。灰度化的好处是:相较于彩色图像灰度图像占内存更小,运行速度更快;灰度图像后可以在视觉上增加对比,突出目标区域。

3、二值图像

二值图像就是将像素点的灰度值设置为0或255,整个图像呈现出明显的只有黑和白的视觉效果。可以用来描述字符图像,其优点是占用空间少,缺点是当表示人物、风景图像时,二值图像只能展示其边缘信息,图像内部的纹理特征表现不明显。一般应用在车牌识别、图像的字符提取等。

二、图像灰度化

Python将彩色图像转换为灰度图像有多种方式,如使用用Pillow库函数、OpenCV库函数、matplotlib等,大致有下述三种方法:取最大值、平均值、加权平均值。

1、最大值

取R、G、B三个分量中最大的分量值,R=G=B=max(R,G,B)。

import cv2
import numpy as np
from matplotlib import pyplot as plt

def Max_Gray(img_path):
    img = cv2.imread(img_path)
    # 获取图像尺寸
    h, w = img.shape[0:2]
    # 自定义空白单通道图像存放灰度图
    gray = np.zeros((h, w), dtype=img.dtype)
    # 对原图像进行遍历,然后灰度化
    for i in range(h):
        for j in range(w):
            # 求最大值作为灰度值
            gray[i, j] = max(img[i, j, 0], img[i, j, 1], img[i, j, 2])
    gray = cv2.cvtColor(gray, cv2.COLOR_BGR2RGB)
    plt.imshow(gray)
    plt.title('Max_Gray')
    plt.show()

img_path = r'B10.bmp'
Max_Gray(img_path)
2、平均值

取R、G、B三个分量的平均值,R=G=B=(R+G+B)/3。

import cv2
import numpy as np
from matplotlib import pyplot as plt

def Avg_Gray(img_path):
    # 接口读取图像,opencv中读取到的是BGR图像
    img = cv2.imread(img_path)
    # 获取图像尺寸
    h, w = img.shape[0:2]
    # 自定义空白单通道图像存放灰度图
    gray = np.zeros((h, w), dtype=img.dtype)
    # 对原图像进行遍历,然后灰度化
    for i in range(h):
        for j in range(w):
            # 求平均值作为灰度值
            gray[i, j] = (int(img[i, j, 0])+int(img[i, j, 1])+int(img[i, j, 2]))/3
    # 读取的BGR转换为RGB
    gray = cv2.cvtColor(gray, cv2.COLOR_BGR2RGB)
    plt.imshow(gray)
    plt.title('Avg_Gray')
    plt.show()

img_path = r'B10.bmp'
Avg_Gray(img_path)
3、加权平均值

取R、G、B三个分量的加权平均值,因为人眼对颜色敏感度不同,所以三个分量加不同的权值,0.299×R+0.587×G+0.114×B。

import cv2
import numpy as np
from matplotlib import pyplot as plt

def WeiAvg_Gray(Img_path):
    img = cv2.imread(Img_path)
    # 获取图像尺寸
    h, w = img.shape[0:2]
    # 自定义空白单通道图像存放灰度图
    gray = np.zeros((h, w), dtype=img.dtype)
    # 对原图像进行遍历,然后灰度化
    for i in range(h):
        for j in range(w):
            gray[i, j] = 0.114*int(img[i, j, 0])+0.587*int(img[i, j, 1])+0.299*int(img[i, j, 2])
    gray = cv2.cvtColor(gray, cv2.COLOR_BGR2RGB)
    plt.imshow(gray)
    plt.title('WeiAvg_Gray')
    plt.show()

img_path = r'B10.bmp'
WeiAvg_Gray(img_path)

注:最大值转换的灰度图亮度最高,平均值转换的灰度图像较暗,加权平均值转化的灰度图像明暗介于两者之间。
图像处理学习笔记(一),图像处理,图像处理,python文章来源地址https://www.toymoban.com/news/detail-568945.html

4、直接调用灰度处理的方法
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('B1.bmp')
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.subplot(121)
plt.imshow(img1)
plt.title('Src_img')

# 灰度转换
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.subplot(122)
plt.imshow(gray, plt.cm.gray)
plt.title('Gray_img')
plt.show()

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

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

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

相关文章

  • 计算机视觉学习笔记(图像的灰度与灰度级 图像的深度 图像噪声 图像处理)

    如果把白色和黑色之间按对数关系分为若干等级,称为灰度,灰度分为256阶,0为黑色,灰度就是没有色彩,RGB色彩分量全部相等(150,150,150)就代表灰度为150. 一幅图像中不同位置的亮度是不一样的,可用f(x,y)来表示(x,y)上的亮度。由于光是一种能量形式,因此亮度是非负

    2024年02月01日
    浏览(40)
  • Python图像处理笔记——傅里叶变换

    图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。(灰度变化得快频率就高,灰度变化得慢频率就低)。傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。 傅立叶变换的物理意义: 将图像的灰度分布函数

    2024年02月08日
    浏览(34)
  • 【CV学习笔记】图像预处理warpaffine

    在学习图像预处理的时候发现,之前用的图像预处理方法一般为 resize和letter box,这两种方法比较低效,后来在手写AI中接触到了warpaffine,只需要一步就能够对图像进行预处理,同时还能很方便的进行cuda加速,于是便记录下来。 欢迎正在学习或者想学的CV的同学进群一起讨论与

    2023年04月08日
    浏览(37)
  • 数字图像处理(第四版)-冈萨雷斯-学习过程的笔记

    张伟伟,男,西安工程大学电子信息学院,2019级硕士研究生,张宏伟人工智能课题组。 微信公众号:可随时查阅,搜索— 张二牛的笔记 ,回复[数字图像处理]可以直接获取对应的书籍。 研究方向:机器视觉与人工智能。 电子邮件:zhangweiweicpp@163.com 课题组CSDN官方账号,欢

    2024年02月04日
    浏览(23)
  • Opencv+Python笔记(五)图像阈值化处理

    图像阈值化可以理解为一个简单的图像分割操作,阈值又称为临界值,它的目的是确定出一个范围,然后这个范围内的像素点使用同一种方法处理,而阈值之外的部分则使用另一种处理方法或保持原样。 阈值处理有2种方式,一种是固定阈值方式,又包括多种处理模式,另一

    2023年04月26日
    浏览(28)
  • Pytorch学习笔记(3):图像的预处理(transforms)

      目录  一、torchvision:计算机视觉工具包  二、transforms的运行机制 (1)torchvision.transforms:常用的图像预处理方法 (2)transforms运行原理   三、数据标准化 transforms.Normalize() 四、数据增强  4.1 transforms—数据裁剪 (1)transforms.CentorCrop (2)transforms.RandomCrop (3)RandomResiz

    2023年04月13日
    浏览(33)
  • ROS学习笔记15:ROS与OpenCV结合处理图像

      安装OpenCV sudo apt-get install ros-kinetic-vision-opencv libopencv-dev python-opencv   ROS进行图像处理是依赖于OpenCV库的。ROS通过一个叫CvBridge的功能包,将获取的图像数据转换成OpenCV的格式,OpenCV处理之后,传回给ROS进行图像显示(应用),如下图:   我们使用ROS驱动获取摄像头数

    2024年02月05日
    浏览(29)
  • 数字图像处理 --- 相机的内参与外参(CV学习笔记)

    Pinhole Camera Model(针孔相机模型)         针孔相机是一种没有镜头、只有一个小光圈的简单相机。 光线穿过光圈并在相机的另一侧呈现倒立的图像。为了建模方便,我们可以把 物理成像平面 (image plane)上的图像移到 实际场景 (3D object)和 焦点 (focal point)之间,把他想象成

    2024年02月12日
    浏览(30)
  • BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型

    BIT 是用 transformer 结构进行变化检测的一个孪生网络,它的 backbone 用的是 Resnet 结构,具体结构分析可以参考这个链接的作者写的,非常清楚, http://t.csdn.cn/rA9sH。 下面就是来讲我自己的实现过程,比较简单。 首先,在官网找到相应的代码,下载解压到自己的本地。github上面的

    2024年02月10日
    浏览(27)
  • 数字图像处理第三章 学习笔记附部分例子代码(C++ & opencv)

    本系列博客参考书为, 数字图像处理第三版-冈萨雷斯 第三版教材中图片下载地址: book images downloads vs2019配置opencv可以查看:VS2019 Opencv4.5.4配置教程 后续剧情: 数字图像处理 第四章 频率域滤波 学习笔记 数字图像处理 第六章 彩色图像处理 学习笔记 数字图像处理 第七章 小

    2024年02月03日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包