欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python OpenCV圖像顏色變換示例

 更新時(shí)間:2022年01月10日 15:29:28   作者:Hong_Youth  
大家好,本篇文章主要講的是Python OpenCV圖像顏色變換示例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下

給圖像添加顏色

在使用OpenCV操作圖像時(shí),有時(shí)候需要給圖像添加不同的顏色,以達(dá)到不同的風(fēng)格效果。這里介紹的主要是opencv中的cv.applyColorMap()函數(shù)。

給圖像應(yīng)用顏色函數(shù)cv.applyColorMap(src, colormap, dst=None)
src:表示傳入的原圖;
colormap:顏色圖類型(17種)??梢詥为?dú)使用,也可以以一個(gè)列表的形式批量使用。

以下圖舉例實(shí)現(xiàn):

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)  # 根據(jù)圖像大小自動(dòng)調(diào)節(jié)窗口大小
    cv.imshow('input', img)

    index = 0

    while True:
        dst = cv.applyColorMap(img, color_map[index % len(color_map)])  # 在原圖上應(yīng)用不同的顏色模式

        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圖像顏色變換_計(jì)算機(jī)視覺_02

圖像按位操作

圖像的位級(jí)操作主要包括:與、或、非、異或四種操作。

與:cv.bitwise_and(img1,img2),兩幅圖像按位進(jìn)行與操作;或:cv.bitwise_or(img1, img2),兩幅圖像按位進(jìn)行或操作;異或:cv.bitwise_xor(img1, img2),兩幅圖像按位進(jìn)行異或操作;非: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)  # 創(chuàng)建一個(gè)空白圖像
    # 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)

結(jié)果展示:

OpenCV-Python圖像顏色變換_python_03

圖像的通道操作

彩色圖像由R、G、B三通道組成,我們可以分別對(duì)每個(gè)通道進(jìn)行操作。主要有通道分離、通道合并、通道交換等操作。

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

代碼實(shí)現(xiàn):

# -*-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個(gè)通道,每個(gè)通道都是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結(jié)果類似,

    cv.imshow('bbb', img[:, :, 0])  # 顯示第1個(gè)通道
    cv.imshow('ggg', img[:, :, 1])  # 顯示第2個(gè)通道
    cv.imshow('rrr', img[:, :, 2])  # 顯示第3個(gè)通道
    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)

結(jié)果展示:

OpenCV-Python圖像顏色變換_ide_04

到此這篇關(guān)于Python OpenCV圖像顏色變換示例的文章就介紹到這了,更多相關(guān)Python OpenCV圖像顏色內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python pandas 的索引方式 data.loc[],data[][]示例詳解

    Python pandas 的索引方式 data.loc[],data[][]示例詳解

    這篇文章主要介紹了Python pandas 的索引方式 data.loc[], data[][]的相關(guān)資料,其中data.loc[index,column]使用.loc[ ]第一個(gè)參數(shù)是行索引,第二個(gè)參數(shù)是列索引,本文結(jié)合實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 詳解Python流程控制語(yǔ)句

    詳解Python流程控制語(yǔ)句

    這篇文章主要介紹了Python流程控制語(yǔ)句的的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • python實(shí)現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法

    python實(shí)現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法

    這篇文章主要介紹了python實(shí)現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法,實(shí)例分析了Python使用pil模塊進(jìn)行圖片處理的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 使用Python實(shí)現(xiàn)火車票查詢系統(tǒng)(帶界面)

    使用Python實(shí)現(xiàn)火車票查詢系統(tǒng)(帶界面)

    周末、假期來了,七夕也快到了,又到一年中最一票難求的時(shí)候了!本文將用Python制作一個(gè)簡(jiǎn)單的火車票查詢系統(tǒng),感興趣的可以了解一下
    2022-07-07
  • Python中pymysql 模塊的使用詳解

    Python中pymysql 模塊的使用詳解

    pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同。但目前pymysql支持python3.x而后者不支持3.x版本。
    2019-08-08
  • 如何搜索查找并解決Django相關(guān)的問題

    如何搜索查找并解決Django相關(guān)的問題

    每個(gè)程序員都會(huì)在開發(fā)過程中遇到這樣或那樣的問題, 有時(shí)光靠一個(gè)人是無法解決所有問題的, 所以我們應(yīng)該找到適當(dāng)?shù)牡胤教釂?
    2014-06-06
  • 徹底卸載anaconda詳細(xì)教程(推薦!)

    徹底卸載anaconda詳細(xì)教程(推薦!)

    用anaconda更改我的python版本,就是出現(xiàn)了凍結(jié)無法更改等等之類的問題,擔(dān)心更新anaconda還是會(huì)出錯(cuò),于是打算卸載anaconda,重新下載一個(gè)安裝,下面這篇文章主要給大家介紹了關(guān)于徹底卸載anaconda的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • yolov5中train.py代碼注釋詳解與使用教程

    yolov5中train.py代碼注釋詳解與使用教程

    train.py里面加了很多額外的功能,使得整體看起來比較復(fù)雜,其實(shí)核心部分主要就是 讀取數(shù)據(jù)集,加載模型,訓(xùn)練中損失的計(jì)算,下面這篇文章主要給大家介紹了關(guān)于yolov5中train.py代碼注釋詳解與使用的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 對(duì)python列表里的字典元素去重方法詳解

    對(duì)python列表里的字典元素去重方法詳解

    今天小編就為大家分享一篇對(duì)python列表里的字典元素去重方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python 調(diào)用 zabbix api的方法示例

    Python 調(diào)用 zabbix api的方法示例

    這篇文章主要介紹了Python 調(diào)用 zabbix api的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論