opencv python 主色彩提取
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 主色彩提取相关推荐
- OpenCV python GrabCut算法提取前景背景图片
OpenCV python GrabCut算法提取前景背景图片 处理图片:[lena_color.jpg] 手动mask[mask.jpg] import numpy as np import cv2 ...
- Python聚类色彩提取——Scipy-kmeans
一.聚类:物以类聚 数组可以进行聚类,并找到数组的聚类中心.使用的第三方库是scipy,需要pip install scipy,先安装该库.数组聚类代码: import numpy as np fro ...
- OpenCV—python 自动色彩均衡(ACE)
文章目录 一.ACE算法理论 1.1 ACE算法 二.快速ACE算法 2.1 原理 2.2 代码演示 一.ACE算法理论 图像对比度增强的算法在很多场合都有用处,特别是在医学图像中,这是因为在众多疾病 ...
- 【OpenCV 例程 300篇】237. 基于主成分提取的方向校正(OpenCV)
『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]237. 基于主成分提取的方向校正(OpenCV) 主成分分析(Principal ...
- [Python与图像处理]利用Python与Kmeans聚类分析图像主色彩
如何使用OpenCV,Python和k-means聚类算法来查找图像中最主要的颜色 该任务可用于分析一张优秀摄影作品的色彩分布,并建立色卡图,将其用于本地调色. K-Means聚类,那么k-mea ...
- OpenCV python(二)图像预处理:改变图像大小 提取感兴趣区域
OpenCV python(二)图像预处理:改变图像大小 && 提取感兴趣区域 一.改变图像大小 1.获取图像宽.高.通道数 2.resize函数 3.案例 二.ROI感兴趣区域 1. ...
- OpenCV python 提取图像内的三色
OpenCV python 提取图像内的三色 原图 [opencv.jpg] import cv2 import numpy as npdef main():# 1.导入图片img_src = cv2 ...
- Python+Opencv身份证号码区域提取及识别实现
前端时间智能信息处理实训,我选择的课题为身份证号码识别,对中华人民共和国公民身份证进行识别,提取并识别其中的身份证号码,将身份证号码识别为字符串的形式输出.现在实训结束了将代码发布出来供大家参考,识别 ...
- OpenCV+python:像素运算
一.数值运算(调节亮度,调整对比度) OpenCV提供的图片色素的处理函数(运算的要求:两张图片的shape要一样): (1)相加:add() (2)相减:subtract() (3)相乘:divid ...
最新文章
- TVM优化c++部署实践
- 脚本路径问题_dirname
- 类型两个数相减_小学数学简便计算12种分类+5种易错类型,打印出来给孩子练习!(可打印!)...
- stm32中断向量控制器
- MongoDB 与传统数据库的对比
- nacos 公共_Nacos数据模型
- LeetCode第14题:最长公共前缀
- Linuxmint 美化之路
- 按钮button加超链接
- mysql5.7密码过期ERROR 1862 (HY000): Your password has expired. To log in you must change
- Java开发命名规范
- 如何安装mysql8.0后配置_MYSQL8.0安装配置
- 安卓双进程保活的代码
- 解决打开pdf时“在禁用UAC时,无法激活此应用”
- 广告行业中那些趣事系列36:腾讯2021广告大赛多模态视频广告标签baseline介绍和优化思路...
- python123:大小写转换
- 大数据典型的应用场景
- MATLAB基础——设置符号变量sym,syms,symfun,symvar
- 对比分析方法,数据异动的假设,如何找出羊毛党
- 服!造成程序员脱发的两大原因竟然是……
热门文章
- Matlab使用 FFT 分析周期性数据
- 12333提交显示服务器异常,ora-600[12333]错误小结及跟踪方法
- 浦科特固态硬盘用USB引导升级固件1.03
- Java 开发环境配置
- 逻辑漏洞渗透与攻防(四)之任意账号注册
- 2021-5-24星期一,上海诚通网盘,一款收益高。分享文件有人下载就会提供收益的网盘!
- 嵌入式linux驱动自动化测试,通用的嵌入式自动化测试框架 - 心心草的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 1GE+WIFI路由器远程代码执行漏洞
- 晨读-你是情绪的巨婴吗?
- cad线性标注样式修改在哪里_AutoCAD2016标注样式设置在哪里 怎么打开