EADST

Get the Main Color from the Given Image

Get the Main Color from the Given Image

import numpy as np
import  cv2

def getColorList():
    color_dict = {}

    # black
    lower_black = np.array([0, 0, 0])
    upper_black = np.array([180, 255, 46])
    color_list = []
    color_list.append(lower_black)
    color_list.append(upper_black)
    color_dict['black'] = color_list

    #gray
    lower_gray = np.array([0, 0, 46])
    upper_gray = np.array([180, 43, 220])
    color_list = []
    color_list.append(lower_gray)
    color_list.append(upper_gray)
    color_dict['gray']=color_list

    # white
    lower_white = np.array([0, 0, 221])
    upper_white = np.array([180, 30, 255])
    color_list = []
    color_list.append(lower_white)
    color_list.append(upper_white)
    color_dict['white'] = color_list

    #red
    lower_red = np.array([156, 43, 46])
    upper_red = np.array([180, 255, 255])
    color_list = []
    color_list.append(lower_red)
    color_list.append(upper_red)
    color_dict['red']=color_list

    # red2
    lower_red = np.array([0, 43, 46])
    upper_red = np.array([10, 255, 255])
    color_list = []
    color_list.append(lower_red)
    color_list.append(upper_red)
    color_dict['red2'] = color_list

    #orange
    lower_orange = np.array([11, 43, 46])
    upper_orange = np.array([25, 255, 255])
    color_list = []
    color_list.append(lower_orange)
    color_list.append(upper_orange)
    color_dict['orange'] = color_list

    #yellow
    lower_yellow = np.array([26, 43, 46])
    upper_yellow = np.array([34, 255, 255])
    color_list = []
    color_list.append(lower_yellow)
    color_list.append(upper_yellow)
    color_dict['yellow'] = color_list

    #green
    lower_green = np.array([35, 43, 46])
    upper_green = np.array([77, 255, 255])
    color_list = []
    color_list.append(lower_green)
    color_list.append(upper_green)
    color_dict['green'] = color_list

    #blue
    lower_blue = np.array([78, 43, 46])
    upper_blue = np.array([124, 255, 255])
    color_list = []
    color_list.append(lower_blue)
    color_list.append(upper_blue)
    color_dict['blue'] = color_list

    # purple
    lower_purple = np.array([125, 43, 46])
    upper_purple = np.array([155, 255, 255])
    color_list = []
    color_list.append(lower_purple)
    color_list.append(upper_purple)
    color_dict['purple'] = color_list

    return color_dict


def get_color(path):
    frame = cv2.imread(path)
    h, w, c = frame.shape
    if h > 224 and w > 224:
        frame = frame[int(h/2)-112:int(h/2)+112, int(w/2)-112:int(w/2)+112, ]
    hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
    maxsum = -100
    color = None
    color_dict = getColorList()
    for d in color_dict:
        mask = cv2.inRange(hsv,color_dict[d][0],color_dict[d][1])
        binary = cv2.threshold(mask, 127, 255, cv2.THRESH_BINARY)[1]
        binary = cv2.dilate(binary,None,iterations=2)
        img, cnts, hierarchy = cv2.findContours(binary.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
        sum = 0
        for c in cnts:
            sum += cv2.contourArea(c)
        if sum > maxsum :
            maxsum = sum
            color = d
    return color


if __name__ == '__main__':
    filename='test.jpeg'
    print(get_color(filename))
       
      
相关标签
About Me
XD
Goals determine what you are going to be.
Category
标签云
图形思考法 顶会 Windows ChatGPT tqdm Knowledge 强化学习 Git CV Food 飞书 SQL Image2Text Interview Miniforge TensorRT FP32 Pandas Proxy 云服务器 净利润 CLAP Hungarian Breakpoint COCO git Anaconda Qwen 腾讯云 JSON 签证 Data EXCEL MD5 ResNet-50 FastAPI NLP Paddle 搞笑 Jupyter Review OpenAI WAN AI C++ CAM 音频 ONNX v2ray ms-swift CSV torchinfo diffusers GPTQ RL tar UI 阿里云 论文 Qwen2.5 Shortcut 递归学习法 FlashAttention Pillow Safetensors 多线程 v0.dev Web DeepSeek Bin NameSilo GIT Qwen2 SPIE IndexTTS2 Numpy PDF Bipartite Bert 证件照 API网关 Logo Crawler XML BTC 域名 Land Augmentation Google Linux logger Attention Gemma git-lfs 公式 Github Conda GPT4 Permission NLTK HaggingFace Freesound Hotel Nginx 关于博主 Dataset PyTorch CUDA Jev Disk HuggingFace 论文速读 Agent RAR VPN Tiktoken Docker Input Distillation FP16 财报 TTS DeepStream Use Heatmap Domain Michelin Website 图标 Ubuntu SVR GoogLeNet Mixtral 多进程 Ptyhon RGB llama.cpp Claude 报税 CTC Jetson WebCrawler ModelScope LLAMA Zip VGG-16 printf FP64 CEIR Math Tensor Template Clash Streamlit Pytorch PIP TensorFlow Python mmap OCR Pickle PyCharm Quantization Bitcoin Baidu UNIX LLM LeetCode API Firewall Django transformers uwsgi Llama PDB Animate FP8 算法题 Harness SAM Plotly uWSGI BF16 Vmess TSV Statistics Plate Password Algorithm Translation Magnet 版权 News Rebuttal Excel Diagram Transformers Video Tracking Color CC Quantize 第一性原理 icon InvalidArgumentError Random hf Base64 Datetime OpenCV 继承 Sklearn Markdown scipy SQLite Hilton VSCode Search QWEN BeautifulSoup GGML Cloudreve XGBoost Vim Card LoRA LaTeX YOLO Paper
站点统计

本站现有博文338篇,共被浏览972305次

本站已经建立2685天!

热门文章
文章归档