首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >自动识别图像中的模式

自动识别图像中的模式
EN

Stack Overflow用户
提问于 2010-07-14 14:34:06
回答 2查看 19.4K关注 0票数 9

最近,我从中央情报局世界事实手册下载了一些标志。现在我想把它们分类。

  1. 得到颜色
  2. 得到一些形状(星星、月亮等)

在浏览时,我看到了Python,它允许我提取颜色(即用于奥地利 )

代码语言:javascript
运行
AI代码解释
复制
#!/usr/bin/env python
import Image
bild = Image.open("au-lgflag.gif").convert("RGB")
bild.getcolors()
[(44748, (255, 255, 255)), (452, (236, 145, 146)), (653, (191, 147, 149)), ...)]

奇怪的是,奥地利国旗中只有两种颜色,但上面的输出显示了十多个颜色。你知道为什么吗?我的想法是只计算前5种颜色,因为我对每种颜色都不感兴趣,所以我会对64的倍数进行一些“规范化”(所以(236,145,146)变成(192,128,128))。

然而,目前我不知道提取更多信息的最佳方法是什么(如果图像中有一颗恒星)。否则)。你能给我一些怎么做的提示吗?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-14 15:32:34

PIL只做基本的图像操作-打开、一些转换或过滤器,并保存到其他格式。

模式识别,是一个先进的图像处理领域的一部分和进化-它使用的算法远远不同于目前的PIL。

在Python中可以使用一些库和框架来进行模式识别(识别星星和卫星等等),尽管我向您提出了这样的建议:如果您希望这样做只是为了对一个0和几个coutnry标志进行分类,您应该手动进行,而不是尝试深入模式识别。

您对颜色数量的评论说明您根本不使用计算机图像。模式识别是硬核心,即使是python前端也是如此。(你不能指望现有的框架事先知道什么是“月亮”或“恒星”)

因此,对于少于500个图像,您可以求助于允许您手动标记图像并编写一些代码将标记链接到每个标志的软件。

至于颜色:计算机光栅图像是由像素组成的。这些是广场。在不同颜色之间的边界,如果一个像素在一种颜色上(比如白色),而它的邻居是一个完全不同的颜色(比如红色),那么这个边界就会出现锯齿状。这就是所谓的“混叠”。为了减少这一点,计算机软件在硬边界上混合颜色,创建中间颜色--这就是为什么一个PNG即使有两个明显的颜色,内部也可以有几个颜色。对于.JPG,更糟糕的是,因为我们使用的RGB颜色的四舍五入的十进制数甚至没有存储在图像中。

与模式识别不同的是,您可以通过使用每个组件中最重要的部分来缩小颜色的大小。我想说这两个最重要的部分就足够了。下面的python函数可以使用PIL提供的颜色计数来做到这一点:

代码语言:javascript
运行
AI代码解释
复制
def get_main_colors(col_list):
    main_colors = set()
    for index, color in col_list:
        main_colors.add(tuple(component >> 6 for component in color))
    return [tuple(component << 6 for component in color) for color in main_colors]

例如,用"get_main_colors(bild.get_colors())“来调用它。

下面是处理模式识别部分的另一个问题:python图像识别

票数 8
EN

Stack Overflow用户

发布于 2010-07-14 18:27:04

首先是一些简单的术语,以防万一:

分类器学习输出的输入映射。通过提供输入/输出对来训练分类器,例如,特征向量(如颜色信息)和标签(如“捷克国旗”)。在实践中,标签被表示为标量数。在您的示例中,您有一个多类问题,这仅仅意味着有两个以上可能的标签(显然,因为有两个以上的国旗)。多类分类器的训练可能比普通的二进制分类器要复杂一些,所以您可能需要搜索诸如“多类分类器”或“一对多分类器”这样的术语来为您研究最佳的方法。

关于这个问题:

我认为使用一个简单的分类器,比如k近邻,以颜色直方图作为特征向量,可以很容易地解决问题。特别是,我将使用HSV特征向量,而不是RGB特征向量。使用这种简单的分类器系统,例如:基于直方图的图像分类支持向量机,在文献中得到了一些很好的结果。本文使用了一种特殊的分类器--支持向量机(SVM)和HSV特征向量。HSV特征向量也避免了图像缩放和旋转的问题,例如,一个标志是1024x768 vs 640x480,或者是在图像中旋转45度的标志。

用于训练该算法的伪代码如下所示:

代码语言:javascript
运行
AI代码解释
复制
# training simple kNN -- just compute feature vectors, collect labels
X = []    # tuple (input example, label)
for training_image in data:
    x = get_hsv_vector(training_image)
    y = get_label(training_image)
    X.append((x,y))

# classification -- pick k closest feature vectors 
K = 3     # the 'k' in kNN -- how many similar featvecs to use
d = []    # (distance, label) tuples for scoring
x_test = get_hsv_vector(test_image)    # feature vector to be classified
for x_train in X:
    d.append((distance(x_test[0], x_train), x_test[1])

# sort distances, d, by closeness and pick top K labels for scoring
d.sort()
output = get_majority_vote([x[1] for x in d[:K]])

kNN分类器可以在几个python包中使用,并提供了良好的文档。它应该是相当容易转换到HSV颜色空间以及。如果你没有达到你想要的结果,你可以尝试改进你的特征向量或分类器。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3251069

复制
相关文章
【图像处理篇】自动识别手写数字web应用05
往期的4篇已经把Docker+Keras+Flask+JS的全栈+深度学习介绍完整了: 自己动手做一个识别手写数字的web应用01 自己动手做一个识别手写数字的web应用02 自己动手做一个识别手写数字的web应用03 自己动手做一个识别手写数字的web应用04 今天更新一篇关于:图像处理。 再回顾下MNIST手写字数据集的特点:每个数据经过归一化处理,对应一张灰度图片,图片以像素的重心居中处理,28x28的尺寸。 上一篇文章中,对canvas手写对数字仅做了简单对居中处理,严格来说,应该做一个重心居中的处
mixlab
2018/04/17
1.5K0
【图像处理篇】自动识别手写数字web应用05
Python自动识别多个不完整图像拼接为完整图像
首先把一个图像水平切分为多个不完整的图像(宽度相同),然后再把这些图像上下拼接起来,还原为原来的图像。如果原始图像各部分非常相似,拼接有可能会有误差,不过这是正常的。
Python小屋屋主
2020/04/15
1.1K0
Python自动识别多个不完整图像拼接为完整图像
终端图像处理系列 - 图像混合模式的Shader实现
在图像处理应用中,将两张或者多张图片混合显示是非常常见的一种操作,应用场景包括但不限于:加水印、标签,插入画中画,遮盖等等...
天天P图攻城狮
2018/05/14
4.5K10
图形图像算法中必须要了解的设计模式(3)
随着信息的多元化,信息的概念不仅仅指的是文字,它还包含图片、声音、视频等其它丰富的信息。文字信息越来越多地被图片、声音、视频信息所替代,而视频又是由一针一针的图像组成的,因此图形图像的处理变得越来越热门和重要,众多的专家、学者、工程师投入到这个领域。
OpenCV学堂
2019/11/13
6740
图形图像算法中必须要了解的设计模式(2)
AI越来越火热,人工智能已然成风!而人工智能最重要是各种算法,因此机器学习越来越受到追捧,算法越来越被重视。
OpenCV学堂
2018/07/26
4800
图形图像算法中必须要了解的设计模式(1)
随着信息的多元化,信息的概念不仅仅指的是文字,它还包含图片、声音、视频等其它丰富的信息。文字信息越来越多地被图片、声音、视频信息所替代,而视频又是由一针一针的图像组成的,因此图形图像的处理变得越来越热门和重要,众多的专家、学者、工程师投入到这个领域。
OpenCV学堂
2018/07/26
1.5K0
图形图像算法中必须要了解的设计模式(1)
图像中的几何变换
一. 图像几何变换概述 图像几何变换是指用数学建模的方法来描述图像位置、大小、形状等变化的方法。在实际场景拍摄到的一幅图像,如果画面过大或过小,都需要进行缩小或放大。如果拍摄时景物与摄像头不成相互平行关系的时候,会发生一些几何畸变,例如会把一个正方形拍摄成一个梯形等。这就需要进行一定的畸变校正。在进行目标物的匹配时,需要对图像进行旋转、平移等处理。在进行三维景物显示时,需要进行三维到二维平面的投影建模。因此,图像几何变换是图像处理及分析的基础。 二. 几何变换基础 1. 齐次坐标: 齐次坐标表示是计算机图形
智能算法
2018/04/02
2.2K0
图像中的几何变换
图像中的裂纹检测
我们首先需要从互联网上获取包含墙壁裂缝的图像(URL格式)数据。总共包含1428张图像:其中一半是新的且未损坏的墙壁;其余部分显示了各种尺寸和类型的裂缝。
小白学视觉
2021/01/18
1.4K0
【设计模式】汉堡中的设计模式——策略模式
话说昨天,麦当劳搞活动,板烧只要5块大洋!!!下班了之后我就骑着心爱的小摩托飞奔过去,在等待了一段(long)时(long)间(time)...... 终于如愿以偿的握着这简单的快乐
落寞的鱼丶
2022/02/26
8670
WordPress 中的 Debug 模式(调试模式)
在开发WordPress 主题的时候务必要开启Debug 模式(调试模式),以便检测出隐藏在前端页面背后的bug。下面就为大家简单介绍一下开启的方法: 一般技巧 在WordPress 根目录下的wp-config.php 文件大概79行下有下面一段代码: /** * 开发者专用:WordPress调试模式。 * * 将这个值改为true,WordPress将显示所有用于开发的提示。 * 强烈建议插件开发者在开发环境中启用WP_DEBUG。 */ define('WP_DEBUG', false);
Jeff
2018/01/19
2.5K0
WordPress 中的 Debug 模式(调试模式)
关于OpenCV中图像的widthStep
在OpenCV的IplImage指针结构中,有一个成员widthStep,这个值如何来确定呢,最近让我头疼了好久,终于想明白了,现在
全栈程序员站长
2022/07/01
5590
图像分类任务中的损失
图像分类是机器学习中的一项重要任务。这项任务有很多比赛。良好的体系结构和增强技术都是必不可少的,但适当的损失函数现在也是至关重要的。
AI研习社
2019/11/18
2.2K0
图像分类任务中的损失
终端图像处理系列 - OpenGL混合模式的使用
OpenGL一次渲染过程包含了多个阶段,包括顶点着色器、图元组装、栅格化、片元着色器、测试和混合等,最后将结果输出的FrameBuffer上。
天天P图攻城狮
2018/05/22
5K4
PhotoShop自动识别并安装字体的脚本
PhotoShop主要是美术在使用,在遇到其它同事也需要使用psd做一些操作时,就很容易遇到字体缺失的问题。
meteoric
2022/09/07
3.3K0
让 WebStorm 自动识别 Webpack 的 alias 配置
我们都经常遇到这个情况,在 Web 项目目录结构划分得细致之后,从某个子组件引用公共模块时,如果使用准确的相对路径,路径可能会变得相当长:
贤羽
2022/06/09
2.2K0
Dart 中的生产模式和检查模式
注: Dart 1.x有生产模式和检查模式两种运行模式, Dart 2中移除了检查模式。
莫斯
2020/09/10
1.5K0
Flutter中GridTile中图像上方的InkVell波纹
使用Stack,我们可以将Material和InkWell带到图像上。要拉伸材质,我们将使用Positioned.fill小部件。
徐建国
2021/08/26
8240
JavaScript 中的设计模式:创建模式
在日常生活中,程序员在写代码的时候可能会遇到很多错误,自然而然的就会想出解决这些问题的方法。不同项目中不同打印机开发的解决方案彼此非常相似。这就是设计模式发挥作用的地方。
海拥
2023/02/27
4720
Java中的设计模式(四):代理模式
  前段时间老婆看上了一条不知道什么牌子的皮带,在国内的商店里面搜了一下发现都没有货,于是跑去咨询她加的代购小姐姐有没有做这款皮带的代购。看着她的这一通操作,我不禁感觉一阵熟悉,这代购的模式和 代理模式 何其相似,代购小姐姐代替了实际的客户前去实际地点进行商品的试用和购买,然后在发给对应的客户,在这一过程中客户只需要告诉代购小姐姐需要购买某件商品即可。
闲宇非鱼
2022/02/08
4750
Java中的设计模式(四):代理模式
点击加载更多

相似问题

如何自动识别图像中的多行?

11

()自动识别图像格式

22

图像的自动裁剪(自动识别图像与背景)

32

使用bwperim从图像中自动识别未标记的对象

10

自动识别文本区域中的图像(如StackOverflow)

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档