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
标签云
EXCEL Vim Gemma IndexTTS2 GGML Proxy FP16 Qwen2 Ptyhon PDB VSCode SQLite NLP RAR Cloudreve 搞笑 OpenAI WebCrawler FlashAttention Hungarian Tensor v2ray Diagram Linux UNIX 财报 TensorRT Random ONNX Video UI 阿里云 Firewall ModelScope Google VGG-16 COCO Claude LoRA 视频信息 CC Tracking HuggingFace Github git CEIR FP8 Freesound transformers LaTeX 关于博主 Quantization SVR CSV FastAPI CV WAN Use Card MD5 BF16 报税 RGB Paper tar GoogLeNet HaggingFace Paddle Bin Attention Data Template Shortcut DeepSeek Markdown Dataset git-lfs 多进程 域名 Translation Knowledge Safetensors Qwen2.5 多线程 Password LLAMA Windows logger scipy 净利润 AI Tiktoken NameSilo uwsgi Michelin Mixtral BeautifulSoup 音频 TTS Distillation Website Sklearn XGBoost Interview Statistics Django Miniforge LeetCode VPN YOLO 公式 Food SAM Jetson SQL QWEN 签证 Quantize Python PyCharm Color XML BTC Domain diffusers Excel 腾讯云 GPTQ CUDA Transformers Magnet OpenCV printf API GIT Qwen Pickle Crawler TensorFlow Anaconda Bert Vmess 算法题 Land Conda Bitcoin C++ 飞书 OCR mmap PDF TSV Review Hotel FP64 Docker NLTK Base64 Augmentation ChatGPT JSON tqdm llama.cpp 版权 Plotly InvalidArgumentError Baidu 证件照 CAM Pillow Input FP32 torchinfo Animate Git Pandas Image2Text Plate Llama Logo Web Breakpoint Bipartite Heatmap Ubuntu 继承 Nginx Datetime CLAP LLM PIP CTC Clash Algorithm Disk Permission uWSGI GPT4 Jupyter Pytorch Streamlit Math Numpy Zip hf ResNet-50 DeepStream v0.dev PyTorch SPIE Hilton
站点统计

本站现有博文311篇,共被浏览740103

本站已经建立2377天!

热门文章
文章归档