opencv python 主色彩提取

  • 一、KMeans是什么?
  • 二、具体步骤
    • 1.读入图像
    • 2.建立KMenas模型
    • 3.使用KMeans聚类
    • 4.统计各个聚类比率
    • 5.根据比率建立色卡
  • 三、代码示例
  • 三、实际效果

一、KMeans是什么?

KMeans会计算出每个聚类的像素的中心值,根据中心值可以获取图像的主色彩及分布的情况,绘制出图像对应的取色卡,这个方面在检测图片色彩偏差的时候特别有用

二、具体步骤

1.读入图像

2.建立KMenas模型

3.使用KMeans聚类

4.统计各个聚类比率

5.根据比率建立色卡

三、代码示例

import numpy as np
import cv2img = cv2.imread('D:\\Project-2021\\ceramic tile\\img\\QB24107_C.jpg')Z = img.reshape((-1,3))
# 转换成 np.float32
Z = np.float32(Z)
# 定义 criteria, 聚类的数量
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
K = 3
ret,label,center=cv2.kmeans(Z,K,None,criteria,10,cv2.KMEANS_RANDOM_CENTERS)label_map=label.reshape((img.shape[0],img.shape[1],1))
label_map=np.uint8(label_map)hist = cv2.calcHist([label_map],[0], #使用的通道None, #没有使用mask[K], #HistSize[0,K]) # 对直方图进行归一化,使得总和为1
hist = hist.astype("float")
hist /= hist.sum()
# 绘制每一聚簇的相对百分比
bar = np.zeros((50, 300, 3), dtype="uint8")
startX = 0
for (percent, color) in zip(hist, center):endX = startX + (percent * 300)cv2.rectangle(bar, (int(startX), 0), (int(endX), 50),color.astype("uint8").tolist(), -1)startX = endXcv2.imshow('bar',bar)
cv2.imshow('IMG',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、实际效果

opencv python 主色彩提取相关推荐

  1. OpenCV python GrabCut算法提取前景背景图片

    OpenCV python GrabCut算法提取前景背景图片 处理图片:[lena_color.jpg] 手动mask[mask.jpg] import numpy as np import cv2 ...

  2. Python聚类色彩提取——Scipy-kmeans

    一.聚类:物以类聚 数组可以进行聚类,并找到数组的聚类中心.使用的第三方库是scipy,需要pip install scipy,先安装该库.数组聚类代码: import numpy as np fro ...

  3. OpenCV—python 自动色彩均衡(ACE)

    文章目录 一.ACE算法理论 1.1 ACE算法 二.快速ACE算法 2.1 原理 2.2 代码演示 一.ACE算法理论 图像对比度增强的算法在很多场合都有用处,特别是在医学图像中,这是因为在众多疾病 ...

  4. 【OpenCV 例程 300篇】237. 基于主成分提取的方向校正(OpenCV)

    『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]237. 基于主成分提取的方向校正(OpenCV) 主成分分析(Principal ...

  5. [Python与图像处理]利用Python与Kmeans聚类分析图像主色彩

    如何使用OpenCV,Python和k-means聚类算法来查找图像中最主要的颜色   该任务可用于分析一张优秀摄影作品的色彩分布,并建立色卡图,将其用于本地调色. K-Means聚类,那么k-mea ...

  6. OpenCV python(二)图像预处理:改变图像大小 提取感兴趣区域

    OpenCV python(二)图像预处理:改变图像大小 && 提取感兴趣区域 一.改变图像大小 1.获取图像宽.高.通道数 2.resize函数 3.案例 二.ROI感兴趣区域 1. ...

  7. OpenCV python 提取图像内的三色

    OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...

  8. Python+Opencv身份证号码区域提取及识别实现

    前端时间智能信息处理实训,我选择的课题为身份证号码识别,对中华人民共和国公民身份证进行识别,提取并识别其中的身份证号码,将身份证号码识别为字符串的形式输出.现在实训结束了将代码发布出来供大家参考,识别 ...

  9. OpenCV+python:像素运算

    一.数值运算(调节亮度,调整对比度) OpenCV提供的图片色素的处理函数(运算的要求:两张图片的shape要一样): (1)相加:add() (2)相减:subtract() (3)相乘:divid ...

最新文章

  1. TVM优化c++部署实践
  2. 脚本路径问题_dirname
  3. 类型两个数相减_小学数学简便计算12种分类+5种易错类型,打印出来给孩子练习!(可打印!)...
  4. stm32中断向量控制器
  5. MongoDB 与传统数据库的对比
  6. nacos 公共_Nacos数据模型
  7. LeetCode第14题:最长公共前缀
  8. Linuxmint 美化之路
  9. 按钮button加超链接
  10. mysql5.7密码过期ERROR 1862 (HY000): Your password has expired. To log in you must change
  11. Java开发命名规范
  12. 如何安装mysql8.0后配置_MYSQL8.0安装配置
  13. 安卓双进程保活的代码
  14. 解决打开pdf时“在禁用UAC时,无法激活此应用”
  15. 广告行业中那些趣事系列36:腾讯2021广告大赛多模态视频广告标签baseline介绍和优化思路...
  16. python123:大小写转换
  17. 大数据典型的应用场景
  18. MATLAB基础——设置符号变量sym,syms,symfun,symvar
  19. 对比分析方法,数据异动的假设,如何找出羊毛党
  20. 服!造成程序员脱发的两大原因竟然是……

热门文章

  1. Matlab使用 FFT 分析周期性数据
  2. 12333提交显示服务器异常,ora-600[12333]错误小结及跟踪方法
  3. 浦科特固态硬盘用USB引导升级固件1.03
  4. Java 开发环境配置
  5. 逻辑漏洞渗透与攻防(四)之任意账号注册
  6. 2021-5-24星期一,上海诚通网盘,一款收益高。分享文件有人下载就会提供收益的网盘!
  7. 嵌入式linux驱动自动化测试,通用的嵌入式自动化测试框架 - 心心草的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  8. 1GE+WIFI路由器远程代码执行漏洞
  9. 晨读-你是情绪的巨婴吗?
  10. cad线性标注样式修改在哪里_AutoCAD2016标注样式设置在哪里 怎么打开