电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python下對hsv顏色空間進行量化操作

瀏覽:3日期:2022-07-22 18:47:18

更新:優化了代碼,理由numpy的ufunc函數功能替換了之前的雙重for循環,測試圖片大小為692*1024*3,優化前運行時間為6.9s,優化后為0.8s。

由于工作需要,需要計算顏色直方圖來提取顏色特征,但若不將顏色空間進行量化,則直方圖矢量維數過高,不便于使用。但是看了opencv API后并未發現提供了相關函數能夠在計算顏色直方圖的同時進行量化,因此這部分功能只能自己實現。下面分為兩個部分進行介紹:

一、顏色空間量化表

由于RGB模型不夠直觀,不符合人類視覺習慣,因此在進行顏色特征提取前,需要將照片從RGB顏色模型轉換為更符合人類視覺的HSV模型。在提取顏色特征時,最常用的方法之一為顏色直方圖法,但一張圖片中出現的顏色一般特別多,導致直方圖矢量的維數較高,因此需要對HSV空間進行量化。根據人眼對顏色的感知特性,采用較為常用的量化方法,即按照如下對應關系進行量化:

python下對hsv顏色空間進行量化操作

基于上述量化表,將各顏色分量按照下述公式合成為72維一維矢量:python下對hsv顏色空間進行量化操作

二、量化代碼

代碼使用純python寫成,效率偏低,處理388*500像素的照片用時1.45秒。在quantilize函數中,未使用if-else判斷語句,因此至少節省了1/3的時間。但這個速度顯然是無法令人滿意的,用C++效率應該會更高點。如果有人有更好的想法,歡迎在下方評論交流。

#-*-coding:utf-8-*-import cv2import numpy as npfrom datetime import datetimefrom matplotlib import pyplot as pltdef colors(imagepath): img = cv2.imread(imagepath) hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV) nhsv = np.zeros(hsv.shape[:2], dtype=np.uint8) t2 = datetime.now() for i in range(hsv.shape[0]): for j in range(hsv.shape[1]): nhsv[i][j] = quantilize(hsv[i][j]) print datetime.now() - t2 hist = cv2.calcHist([nhsv], [0], None, [72], [0,71]) # 40x faster than np.histogramfaster than np.histogram plt.plot(hist,color = ’r’) plt.xlim([0, 72]) plt.show()def quantilize(value): ’’’hsv直方圖量化 value : [21, 144, 23] h, s, v opencv中,h-[0,180], s-[0,255], v-[0,255] ’’’ # value[0] = value[0] * 2 hlist = [20, 40, 75, 155, 190, 270, 290, 316, 360] svlist = [21, 178, 255] for i in range(len(hlist)): if value[0] <= hlist[i]: h = i % 8 break for i in range(len(svlist)): if value[1] <= svlist[i]: s = i break for i in range(len(svlist)): if value[2] <= svlist[i]: v = i break return 9 * h + 3 * s + v

以上,歡迎批評交流~

三、更新

#-*-coding:utf-8-*-import cv2import numpy as npfrom datetime import datetimefrom matplotlib import pyplot as plthlist = [20, 40, 75, 155, 190, 270, 290, 316, 360]svlist = [21, 178, 255]def quantilize(h, s, v): ’’’hsv直方圖量化’’’ # value : [21, 144, 23] h, s, v h = h * 2 for i in range(len(hlist)): if h <= hlist[i]: h = i % 8 break for i in range(len(svlist)): if s <= svlist[i]: s = i break for i in range(len(svlist)): if v <= svlist[i]: v = i break return 9 * h + 3 * s + vquantilize_ufunc = np.frompyfunc(quantilize, 3, 1) # 自定義ufunc函數,即將quantilize函數轉化為ufunc函數,其輸入參數為3個,輸出參數為1個。def colors(img): hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV) nhsv = quantilize_ufunc(hsv[:,:,0], hsv[:,:,1], hsv[:,:,2]).astype(np.uint8) # 由于frompyfunc函數返回結果為對象,所以需要轉換類型 hist = cv2.calcHist([nhsv], [0], None, [72], [0,71]) # 40x faster than np.histogram hist = hist.reshape(1, hist.shape[0]).astype(np.int32).tolist()[0] return histif __name__ == ’__main__’: img_path = path + ’test.jpg’ img = cv2.imread(img_path) colors(img)

結果

[0, 11, 31490, 100, 3, 32685, 0, 28, 313, 0, 0, 3268, 31, 0, 558364, 6, 1, 441, 0, 0, 2301, 92, 0, 34056, 0, 1, 396, 0, 0, 2682, 84, 5, 712, 0, 137, 55, 0, 0, 1215, 20, 2, 224, 0, 3, 0, 0, 0, 13838, 56, 0, 23474, 63, 23, 1, 0, 0, 4764, 0, 0, 2335, 0, 25, 27, 0, 0, 2302, 5, 0, 1676, 1, 59, 389]

以上這篇python下對hsv顏色空間進行量化操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 共享雨伞_共享童车_共享轮椅_共享陪护床-共享产品的领先者_有伞科技 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 苏州注册公司_苏州代理记账_苏州工商注册_苏州代办公司-恒佳财税 | 圈酒招商网【jiushuitv.com】_酒水招商_代理_加盟平台 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 馋嘴餐饮网_餐饮加盟店火爆好项目_餐饮连锁品牌加盟指南创业平台 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 高压直流电源_特种变压器_变压器铁芯-希恩变压器定制厂家 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 冷镦机-多工位冷镦机-高速冷镦机厂家-温州金诺机械设备制造有限公司 | 冷油器-冷油器换管改造-连云港灵动列管式冷油器生产厂家 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 东莞市海宝机械有限公司-不锈钢分选机-硅胶橡胶-生活垃圾-涡电流-静电-金属-矿石分选机 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 超声骨密度仪,双能X射线骨密度仪【起草单位】,骨密度检测仪厂家 - 品源医疗(江苏)有限公司 | 中医治疗皮肤病_潍坊银康医院「山东」重症皮肤病救治平台 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | PC阳光板-PC耐力板-阳光板雨棚-耐力板雨棚,厂家定制[优尼科板材] | 小型单室真空包装机,食品单室真空包装机-百科 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 液晶拼接屏厂家_拼接屏品牌_拼接屏价格_监控大屏—北京维康 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 |