Python中文
首页
教程
问答
标签
搜索
登录
注册
精确的图像颜色量化以最小化调色板
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图量化一幅图像,使所有的原色保持在适当的位置,并删除所有的副色,如“抗锯齿”边框。 例如,下面的图像最终应量化为3种颜色,而原始图像中的实际颜色数量超过30种。所有“抗锯齿”边框颜色都应视为次要颜色,并在量化时消除,以及“jpeg伪影”,由于过度优化,这些伪影会为图像添加更多颜色。 注意:源图像可以是png或jpeg</p> <p><a href="https://i.stack.imgur.com/JuKau.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/JuKau.png" alt="3 color example"/></a></p> <p>对于量化本身,我使用<code>PIL.quantize(...)</code>和K作为要离开的颜色数。它工作得相当好,并保持调色板与原作完美匹配</p> <pre><code>def color_quantize(path, K): image = cv2.imread(path, cv2.IMREAD_UNCHANGED) img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) im_pil = Image.fromarray(np.uint8(img)) im_pil = im_pil.quantize(K, None, 0, None) return cv2.cvtColor(np.array(im_pil.convert("RGB")), cv2.COLOR_RGB2BGR) </code></pre> <p>因此,如果我事先知道“K”(原色的数量),那么我会将其用于<code>im_pil.quantize(...)</code>。基本上,我需要一种方法来得到那个“K”数字。 有没有办法确定原色的数量</p> <p>顺便说一句,关于“jpeg伪影”的删除,我目前正在使用<code>img = cv2.bilateralFilter(img, 9, 75, 75)</code>,这非常有效</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可能想尝试分析RGB通道的直方图,以找出它们有多少个峰值,希望您有几个大峰值和一些非常小的峰值,然后大峰值的数量应该是您的K</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
6 回答
无法使用Django\u mssql\u后端迁移到外部hos
4 回答
无法使用Django&Python3.4连接到MySql
4 回答
无法使用Django+nginx上载媒体文件
1 回答
无法使用Django1.6导入名称模式
9 回答
无法使用Django1.7和mongodb登录管理站点
8 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
3 回答
无法使用Djangockedi验证CBV中的字段
6 回答
无法使用Djangocketditor上载图像(错误400)
7 回答
无法使用Djangocron进行函数调用
8 回答
无法使用Djangofiler djang上载文件
4 回答
无法使用Djangokronos
4 回答
无法使用Djangomssql provid
5 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
7 回答
无法使用Djangomssq迁移Django数据库
4 回答
无法使用Djangonox创建用户
8 回答
无法使用Djangopyodb从Django查询SQL Server
4 回答
无法使用Djangopython3ldap连接到ldap
3 回答
无法使用Djangoredis连接到redis
9 回答
无法使用Django中的FK创建新表
6 回答