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

本站现有博文332篇,共被浏览896703

本站已经建立2597天!

热门文章
文章归档