Python獲取圖片像素BGR值并生成純色圖
前言
最近工作有個(gè)需求,獲取某張圖片某個(gè)像素顏色,生成該顏色的純色圖片。所以寫(xiě)了一個(gè)工具,分享給大家,如果大家也有一樣的場(chǎng)景,可以直接使用。
依賴(lài)安裝
需要使用opencv以及numpy。安裝命令如下:
pip install opencv-python -i https://pypi.douban.com/simple pip install numpy -i https://pypi.douban.com/simple
代碼
不廢話(huà),上代碼。
#!/user/bin/env python
# coding=utf-8
"""
@project : csdn
@author : 劍客阿良_ALiang
@file : make_pic_tool.py
@ide : PyCharm
@time : 2022-01-11 08:34:31
"""
import cv2
import os
import numpy as np
import uuid
# 獲取圖片坐標(biāo)bgr值
def get_pix_bgr(image_path: str, x: int, y: int):
ext = os.path.basename(image_path).strip().split('.')[-1]
if ext not in ['png', 'jpg']:
raise Exception('format error')
img = cv2.imread(image_path)
px = img[x, y]
blue = img[x, y, 0]
green = img[x, y, 1]
red = img[x, y, 2]
return blue, green, red
# 構(gòu)建純色圖
def make_one_color_pic(output_dir: str, image_path: str, coordinates: tuple, resolution: tuple):
blue, green, red = get_pix_bgr(image_path, coordinates[0], coordinates[1])
img = np.zeros((resolution[1], resolution[0], 3), np.uint8)
# 創(chuàng)建BGR純色圖
img[:] = [blue, green, red]
result_image = os.path.join(output_dir, '{}.jpg'.format(uuid.uuid1().hex))
cv2.imwrite(result_image, img)
return result_image
if __name__ == '__main__':
print(make_one_color_pic(r'C:\Users\huyi\Desktop', r'C:\Users\huyi\Desktop\2054146.jpg', (300, 300), (1080, 1920)))
代碼說(shuō)明:
1、get_pix_bgr方法入?yún)⒎謩e為,圖片地址以及坐標(biāo)位置,用以獲取bgr值。
2、make_one_color_pic方法為最終生成純色圖方法,參數(shù)有輸出目錄地址、圖片地址、坐標(biāo)位置、最終圖片分辨率,輸出最終圖片路徑。
3、最終圖片名使用uuid,避免重復(fù)。
4、做了簡(jiǎn)單的文件后綴校驗(yàn),如需修改,可以自己添加。
驗(yàn)證一下
準(zhǔn)備的圖片

執(zhí)行結(jié)果

最終的圖片

到此這篇關(guān)于Python獲取圖片像素BGR值并生成純色圖的文章就介紹到這了,更多相關(guān)Python生成純色圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pygame Surface創(chuàng)建圖像的實(shí)現(xiàn)
本文主要介紹了Pygame Surface創(chuàng)建圖像的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Python實(shí)現(xiàn)批量壓縮文件/文件夾zipfile的使用
本文主要介紹了Python實(shí)現(xiàn)批量壓縮文件/文件夾zipfile的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
python將一組數(shù)分成每3個(gè)一組的實(shí)例
今天小編就為大家分享一篇python將一組數(shù)分成每3個(gè)一組的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
python實(shí)現(xiàn)圖像高斯金字塔的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)圖像高斯金字塔的示例代碼,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下2020-12-12
使用Python進(jìn)行穩(wěn)定可靠的文件操作詳解
在本文中,主要分享一些如何在Python代碼中改善I/O可靠性的見(jiàn)解,大家參考使用吧2013-12-12
PyCharm調(diào)用matplotlib繪圖時(shí)圖像彈出問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于PyCharm調(diào)用matplotlib繪圖時(shí)圖像彈出問(wèn)題的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PyCharm具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-07-07
python使用pandas讀寫(xiě)excel文件的方法實(shí)例
pandas是一個(gè)十分強(qiáng)大的數(shù)據(jù)處理工具,最近需要處理數(shù)據(jù)并輸入到excel,簡(jiǎn)單列舉它的用法,這篇文章主要給大家介紹了關(guān)于python使用pandas讀寫(xiě)excel文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
使用Python和Go實(shí)現(xiàn)服務(wù)器發(fā)送事件(SSE)
在當(dāng)今的交互式web應(yīng)用程序中,實(shí)時(shí)數(shù)據(jù)更新在增強(qiáng)用戶(hù)體驗(yàn)方面起著至關(guān)重要的作用,在實(shí)時(shí)通信的各種技術(shù)中,SSE在眾多解決方案脫穎而出,本文給大家介紹了使用Python和Go實(shí)現(xiàn)服務(wù)器發(fā)送事件(SSE),需要的朋友可以參考下2024-11-11

