返回顶部
首页 > 资讯 > 后端开发 > Python >PythonOpenCV图像颜色变换示例
  • 571
分享到

PythonOpenCV图像颜色变换示例

2024-04-02 19:04:59 571人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录给图像添加颜色图像按位操作图像的通道操作给图像添加颜色 在使用OpenCV操作图像时,有时候需要给图像添加不同的颜色,以达到不同的风格效果。这里介绍的主要是opencv中的cv.

给图像添加颜色

在使用OpenCV操作图像时,有时候需要给图像添加不同的颜色,以达到不同的风格效果。这里介绍的主要是opencv中的cv.applyColORMap()函数。

给图像应用颜色函数cv.applyColorMap(src, colormap, dst=None)
src:表示传入的原图;
colormap:颜色图类型(17种)。可以单独使用,也可以以一个列表的形式批量使用。

以下图举例实现:

OpenCV-Python图像颜色变换_opencv

直接上代码:

# -*-coding:utf-8-*-
"""
File Name: color_operation.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2 as cv
import numpy as np


color_map = [
    cv.COLORMAP_AUTUMN,
    cv.COLORMAP_BONE,
    cv.COLORMAP_JET,
    cv.COLORMAP_WINTER,
    cv.COLORMAP_PARULA,
    cv.COLORMAP_OCEAN,
    cv.COLORMAP_SUMMER,
    cv.COLORMAP_spring,
    cv.COLORMAP_COOL,
    cv.COLORMAP_PINK,
    cv.COLORMAP_HOT,
    cv.COLORMAP_PARULA,
    cv.COLORMAP_MAGMA,
    cv.COLORMAP_INFERNO,
    cv.COLORMAP_PLASMA,
    cv.COLORMAP_TWILIGHT,
    cv.COLORMAP_TWILIGHT_SHIFTED
]


def color_operation(image_path: str):
    img = cv.imread(image_path, cv.IMREAD_COLOR)  # 以彩色模式读图像
    cv.namedWindow('input', cv.WINDOW_AUTOSIZE)  # 根据图像大小自动调节窗口大小
    cv.imshow('input', img)

    index = 0

    while True:
        dst = cv.applyColorMap(img, color_map[index % len(color_map)])  # 在原图上应用不同的颜色模式

        cv.imshow('{}'.format(color_map[index % len(color_map)]), dst)
        index += 1

        c = cv.waiTKEy(1000)
        if c == 27:
            break

    cv.destroyAllwindows()
  

if __name__ == '__main__':
    path = 'images/daiyutong.png'
    color_operation(path)

效果展示:

OpenCV-Python图像颜色变换_计算机视觉_02

图像按位操作

图像的位级操作主要包括:与、或、非、异或四种操作。

与:cv.bitwise_and(img1,img2),两幅图像按位进行与操作;或:cv.bitwise_or(img1, img2),两幅图像按位进行或操作;异或:cv.bitwise_xor(img1, img2),两幅图像按位进行异或操作;非:cv.bitwise_not(img),将图像按位取反操作。

具体代码如下:

# -*-coding:utf-8-*-
"""
File Name: color_operation.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2 as cv
import numpy as np


def bitwise_operation(image_path1: str, image_path2: str):
    img1 = cv.imread(image_path1, cv.IMREAD_COLOR)
    img2 = cv.imread(image_path2, cv.IMREAD_COLOR)
    img2 = cv.resize(img2, (300, 300))

    # img1 = np.zeros((400, 400, 3), dtype=np.uint8)  # 创建一个空白图像
    # img1[:, :] = (255, 0, 255)  # 给所有像素的b和r通道赋值
    # img2 = np.zeros((400, 400, 3), dtype=np.uint8)
    # img2[:, :] = (0, 255, 0)  # 给所有像素的g通道赋值

    dst1 = cv.bitwise_and(img1, img2)  # 图像的与操作
    dst2 = cv.bitwise_or(img1, img2)  # 图像的或操作
    dst3 = cv.bitwise_xor(img1, img2)  # 图像的异或操作
    dst4 = cv.bitwise_not(img1)  # 图像的非操作

    cv.imshow('img1', img1)
    cv.imshow('img2', img2)

    cv.imshow('bitwise_and', dst1)
    cv.imshow('bitwise_or', dst2)
    cv.imshow('bitwise_xor', dst3)
    cv.imshow('bitwise_not', dst4)

    cv.waitKey(0)
    cv.destroyAllWindows()


if __name__ == '__main__':
    path1 = 'images/daiyutong.png'
    path2 = 'images/2.png'
    bitwise_operation(path1, path2)

结果展示:

OpenCV-Python图像颜色变换_python_03

图像的通道操作

彩色图像由R、G、B三通道组成,我们可以分别对每个通道进行操作。主要有通道分离、通道合并、通道交换等操作。

通道分离:cv.split(img)通道合并:cv.merge(mv)通道交换:cv.mixChannels(src, dst, fromTo)

代码实现:

# -*-coding:utf-8-*-
"""
File Name: color_operation.py
Program IDE: PyCharm
Create File By Author: Hong
"""
import cv2 as cv
import numpy as np


def channel_operation(image_path: str):
    img = cv.imread(image_path, cv.IMREAD_COLOR)
    cv.namedWindow('input', cv.WINDOW_AUTOSIZE)
    cv.imshow('input', img)  # 彩色图像,3个通道,每个通道都是H×W。

    # 通道分离
    mv = cv.split(img)

    print('mv[0]', mv[0])  # 图像的b通道
    print('mv[1]', mv[1])  # 图像的g通道
    print('mv[2]', mv[2])  # 图像的r通道

    mv[0][:, :] = 255  # 给b通道上的所有像素值全部赋值为255
    # 通道合并
    result = cv.merge(mv)

    # 通道交换
    dst = np.zeros(img.shape, dtype=np.uint8)
    cv.mixChannels([img], [dst], fromTo=[2, 0, 1, 1, 0, 2])
    out = cv.cvtColor(img, cv.COLOR_BGR2RGB)  # 与上面的通道交换bgr->rgb结果类似,

    cv.imshow('bbb', img[:, :, 0])  # 显示第1个通道
    cv.imshow('ggg', img[:, :, 1])  # 显示第2个通道
    cv.imshow('rrr', img[:, :, 2])  # 显示第3个通道
    cv.imshow('result', result)
    cv.imshow('dst', dst)
    cv.imshow('out', out)

    cv.waitKey(0)
    cv.destroyAllWindows()


if __name__ == '__main__':
    path = 'images/daiyutong.png'
    channel_operation(path)

结果展示:

OpenCV-Python图像颜色变换_ide_04

到此这篇关于python OpenCV图像颜色变换示例的文章就介绍到这了,更多相关Python OpenCV图像颜色内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: PythonOpenCV图像颜色变换示例

本文链接: https://lsjlt.com/news/162088.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PythonOpenCV图像颜色变换示例
    目录给图像添加颜色图像按位操作图像的通道操作给图像添加颜色 在使用OpenCV操作图像时,有时候需要给图像添加不同的颜色,以达到不同的风格效果。这里介绍的主要是opencv中的cv....
    99+
    2024-04-02
  • pythonopencv图像处理之图像算数运算及修改颜色空间
    目录1.图像加法1.1Numpy加法1.2OpenCV加法2.图像融合3.改变颜色空间1.图像加法 图像加法有两种方式,一种是通过 Numpy 直接对两个图像进行相加,另一种是通过 ...
    99+
    2024-04-02
  • ps如何给图像换颜色
    本文小编为大家详细介绍“ps如何给图像换颜色”,内容详细,步骤清晰,细节处理妥当,希望这篇“ps如何给图像换颜色”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先打开需要替换颜色的图片。 然后依次点击“图像—&g...
    99+
    2023-07-02
  • 【Python】-- python的基本图像处理(图像显示、保存、颜色变换、缩放与旋转等)
    目录 一、图像文件的读写  操作步骤: 显示图像文件的三个常用属性: 例: 二、图像文件的处理 常用的图像处理方法 1、图像的显示 2、图像的保存  3、图像的拷贝与粘贴  4、图像的缩放与旋转  5、图像的颜色变换  6、图像的过滤与增强...
    99+
    2023-10-06
    图像处理 人工智能 python 计算机视觉
  • RGB渐变颜色转换公式及例程
    公式:                         Gradient = A + (B-A) * N / Step Gradient表示第N步的R/G/B的值,A、B、Step表示从颜色A分Step步渐变为颜色B。 例程:       ...
    99+
    2023-09-01
    python c++
  • Pillow怎么实现图像的颜色空间转换
    Pillow是一个Python图像处理库,可以使用它来实现图像的颜色空间转换。下面是一个示例代码,演示如何使用Pillow将一张图像...
    99+
    2024-05-22
    Pillow
  • PythonOpenCV基于霍夫圈变换算法检测图像中的圆形
    目录第一章:霍夫变换检测圆① 实例演示1② 实例演示2③ 霍夫变换函数解析第二章:Python + opencv 完整检测代码① 源代码② 运行效果图第一章:霍夫变换检测圆 ① 实例...
    99+
    2024-04-02
  • C++opencv图像处理实现图片几何变换示例
    目录简介一、图像平移1.图像平移代码 (不改变图像大小)2.图像平移代码 (改变图像大小)二、图像旋转1.图像旋转函数2.仿射变换函数3.代码三、图像缩放1.图像缩放函数2.图像缩小...
    99+
    2024-04-02
  • C++ opencv图像处理实现灰度变换示例
    目录灰度变换概念灰度变换的作用灰度变换的方法灰度化灰度的概念对彩色图进行灰度化1.加权平均值法2.取最大值3.平均值灰度的线性变换1.线性变换2.分段线性变换灰度的非线性变换1.对数...
    99+
    2024-04-02
  • C++ opencv图像处理使用cvtColor实现颜色转换
    目录前言源码效果图代码颜色空间转换代码前言 在我们读取图像时通常会用到imread()函数,里面flags可以决定通道数,来得到我们想要的图像,比如: -1 按解码得到的方式读入图像...
    99+
    2024-04-02
  • Three.Js实现颜色自定义变换效果实例
    目录前言Geometry的属性: 基础属性与动画属性基础属性动画属性Geometry的其他属性vertices顶点位置属性(Geometry自定义一个几何体)colors顶点颜色属性...
    99+
    2023-02-13
    three.js 教程 three.js颜色变换 three.js怎么用
  • css怎么改变图片颜色
    小编给大家分享一下css怎么改变图片颜色,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要...
    99+
    2023-06-14
  • css如何改变图片颜色
    小编给大家分享一下css如何改变图片颜色,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在css中,可以使用filter属性来改变图片颜色,例如:使用“filter...
    99+
    2023-06-08
  • PHP将真彩色图像转换为调色板图像
    这篇文章将为大家详细讲解有关PHP将真彩色图像转换为调色板图像,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 将真彩色图像转换为调色板图像 在计算机图形中,真彩色图像存储每个像素的完整颜色信息,使用...
    99+
    2024-04-02
  • Pillow图像颜色处理怎么用
    这篇文章将为大家详细讲解有关Pillow图像颜色处理怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Pillow 提供了颜色处理模块 ImageColor,该模块支持不同格式的颜色,比如 RGB 格式...
    99+
    2023-06-21
  • PHP为一幅图像分配颜色
    ...
    99+
    2024-04-02
  • PHP取消图像颜色的分配
    ...
    99+
    2024-04-02
  • Pythonopencv图像基本操作学习之灰度图转换
    把今天的学习的opencv知识先记录一下! 运行环境是:pycharm 话不多说,献上代码再说: import cv2 # opencv读取的格式是BGR import matpl...
    99+
    2023-02-16
    python opencv图片转为灰度图 opencv灰度图转换
  • PythonOpenCV一个窗口中显示多幅图像
    在使用opencv显示图像时,有时候需要显示多张图像,就会出现多个窗口,显得冗余,用户不好操作。这时候就想着能不能将这些图像在一个窗口中显示。 方法1:创建画布,将所有图像复制到画布...
    99+
    2024-04-02
  • python 图像处理——图像分割及经典案例篇之基于颜色的图像分割
    前言 作者在第一部分向大家介绍了图像处理的基础知识,第二部分介绍了图像运算和图像增强,接下来第三部分我们将详细讲解图像分割及图像处理经典案例,该部分属于高阶图像处理知识,能进一步加深我们的理解和实践能...
    99+
    2023-09-04
    图像处理 python 计算机视觉
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作