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

本站现有博文309篇,共被浏览730977

本站已经建立2367天!

热门文章
文章归档