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

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

本站已经建立2694天!

热门文章
文章归档