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

本站现有博文321篇,共被浏览776403

本站已经建立2467天!

热门文章
文章归档