精华内容
下载资源
问答
  • Android Studio包含一个Vector Asset Studio的...使用向量drawable资源来代替图片可以减少APK的大小,因为同样一个文件可以在不损失图片质量的情况下改变大小来适应不同分辨率的屏幕。旧版本的Android不支持向量drawa

    Android Studio包含一个Vector Asset Studio的工具,可以帮助你添加Material图标和导入SVG(Scalable Vector Graphic)文件到你的项目中作为向量drawable资源。使用向量drawable资源来代替图片可以减少APK的大小,因为同样一个文件可以在不损失图片质量的情况下改变大小来适应不同分辨率的屏幕。旧版本的Android不支持向量drawable,Vector Asset Studio可以在构建的时候,帮助你把向量drawable转化成不同大小的图片。

    关于Vector Asset Studio

    Vector Asset Studio会将向量图片以XML文件描述的形式添加到项目中。维护一个XML文件要比维护多个分辨率的图片要简单很多。
    Android4.4(API level 20)或更低的版本不支持向量drawable。如果过你的最小API level低于20,在使用Vector Asset Studio时有两个选项:生成PNG文件(默认)或者使用Support Library。

    为了保持向后兼容,Vector Asset Studio生成向量drawable的栅格化图片。向量和栅格化资源会一起打包到APK文件中。在Java代码中,你可以视为向量资源为Drawable或者在XML代码中卫@drawable;当你的应用运行的时候,会根据当前系统的API版本来决定是使用向量资源还是栅格图片。

    再者,为了使用Android Support Library 23.2或更高版本,你可以在build.gradle文件中添加一些声明。

    支持的向量图片类型

    谷歌material design规范提供了material图标,你可以直接应用于你的Android应用中。Vector Asset Studio帮助你选择,导入和更改material图标的大小。
    Vector Asset Studio也可以帮助你导入你自己的SVG文件。SVG是一个基于XML的W3C的标准。Vector Asset Studio支持必要的标准,但并不是所有的特性。当你声明一个SVG文件,Vector Asset Studio告诉你是否支持这个图片代码。如果这个SVG代码不支持,它将这个文件转化为包含VectorDrawable代码的XML文件。

    SVG文件的思考

    一个向量drawable对于一个简单的图标是可以的。Material图标提供了非常好的图片类型的例子,转换成向量drawable也非常好。但是,很多app运行图标包含太多细节,所以它们比较适合用栅格化图片。

    向量图片的初始化载入要比栅格化图片花费更多的CPU资源。之后,内存使用和性能两者是相同的。建议将向量图片限制为最大200*200 dp,否则,将会花费大量时间绘制。

    虽然向量drawable支持一个或多个颜色,在许多情况下图标颜色都是黑色的(android:fillColor=”#FF000000”),利用这个特性,你可以在布局中使用的向量drawable中添加一个tint。图标颜色颜色将变成tint颜色。如果图标颜色不是黑色,图标颜色可能与tint颜色混合。

    运行Vector Asset Studio

    为了打开Vector Asset Studio,通过如下方式:
    1、 在Android Studio中,打开一个Android应用项目。
    2、 在Project窗口中,选择Android视图。
    3、 右键单击res文件夹,选择New > Vector Asset。
    Vector Asset Studio显示:
    这里写图片描述

    导入一个向量图像

    Vector Asset Studio帮助你导入一个向量图像到你的app项目中。

    添加一个material图标

    1、 在Vector Asset Studio中,选择Material Icon
    2、 选择Choose
    3、 选择一个material图标并点击OK
    图标出现在Vector Drawable Preview中。
    4、 可选的,你可以更改资源名称,大小,透明度和RTL镜像设置。
    5、 点击Next
    6、 可选的。更改模块和资源目录。
    7、 点击完成。
    Vector Asset Studio添加一个定义了向量drawable的一个XML到你的项目的app/src/main/res/drawable/ 文件夹中。
    8、 构建项目。
    如果你的最小API level 是Android4.4或者更低,而且没有添加Support Library,Vector Asset Studio生成PNG文件,你不可以修改这些文件。

    导入一个SVG文件

    在打开Vector Asset Studio之后,你可以通过如下方式导入一个SVG文件:
    1、 在Vector Asset Studio中,选择Local SVG file
    文件必须是在本地。如果是在网上,你需要先下载到本地。
    2、 点击需要导入的图片
    图片显示在Vector Drawable Preview。
    然而,如果SVG文件包含不支持的特性,将会在Vector Asset Studio的底部报出一个错误,如下:
    这里写图片描述
    3、 可选的。更改资源的名称、大小、透明度等设置
    4、 点击Next
    5、 可选的。更改模块和资源目录。
    6、 点击Finish。
    7、 构建项目。
    如果你的最小API level 是Android4.4或者更低,而且没有添加Support Library,Vector Asset Studio生成PNG文件,你不可以修改这些文件。

    添加一个向量Drawable到布局中

    在一个布局文件中添加任何可以使用图标的控件,比如ImageButton,ImageView等等,指向一个向量资源。比如:下面的布局中在一个按钮中显示向量资源。
    这里写图片描述
    设置一个向量资源到控件中,执行如下几步:
    1、 打开一个项目,导入一个向量资源
    2、 在Project窗口的Android视图中,双击一个布局XML文件,比如content_main.xml
    3、 点击Design 打开布局编辑器
    4、 从Palette窗口中拖动ImageButton控件到布局编辑器中。
    5、 在Properties窗口,定位到ImageButton的src属性,点击…
    6、 在Resources对话框中,选择Project,导航到Drawable文件夹,选择一个向量资源。点击OK。
    向量资源显示在ImageButton布局中。
    7、 为了更改图片的颜色,可以设置tint属性。
    如果你没有使用Support Library,ImageButton代码如下:

    <ImageButton
      android:id="@+id/imageButton"
      android:src="@drawable/ic_build_24dp"
      android:tint="@color/colorAccent"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@+id/textView2"
      android:layout_marginTop="168dp" />

    在代码中使用一个向量Drawable
    你可以在代码中用普通的方式来调用一个向量资源。当你运行一个app时,会根据你的API版本来判断显示向量或者栅格化图片。

    在大部分情况下,你可以通过@drawable或Drawable访问向量资源。如下:

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
    android:src="@drawable/myimage" />

    如下:

    Resources res = getResources();
    Drawable drawable = res.getDrawable(R.drawable.myimage);

    如下:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
       VectorDrawable vectorDrawable =  (VectorDrawable) drawable;
    } else {
       BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
    }

    修改由Vector Asset Studio生成的XML代码

    你可以修改向量资源的XML代码,但是不是PNG文件和在构建时生成的XML代码。但是,这种方式并不推荐。

    本文作者:宋志辉
    个人微博:点击进入

    展开全文
  • 支持向量图片分类算法,matlab程序
  • Python提取数字图片特征向量

    万次阅读 多人点赞 2017-11-10 15:40:56
    在机器学习中有一种学习叫做手写数字识别,其主要功能就是让机器识别出图片中的数字,其步骤主要包括:图片特征提取、将特征值点阵转化为特征向量、进行模型训练。第一步便是提取图片中的特征提取。数据的预处理关系...

    引言

    在机器学习中有一种学习叫做手写数字识别,其主要功能就是让机器识别出图片中的数字,其步骤主要包括:图片特征提取、将特征值点阵转化为特征向量、进行模型训练。第一步便是提取图片中的特征提取。数据的预处理关系着后面模型的构建情况,所以,数据的处理也是机器学习中非常重要的一部分。下面我就说一下如何提取图片中的特征向量。

    图片灰度化

    blob.png =>blob.png

    当我们拿到一种图片的时候,这张图片可能是多种颜色集合在一起的,而我们为了方便处理这张图片,我们首先会将这张图片灰度化(左图灰度化之前,右图灰度化之后)。如果该图片已经是黑白两色的就可以省略此步骤。

    from PIL import Image
    import numpy as np
    
    #打开一张图片
    img = Image.open("image/77.jpg")
    #图片灰度化
    img = img.convert("L")
    #显示图片
    img.show()
    #将图片转换为数组形式,元素为其像素的亮度值
    print np.asarray(img)

    在图片灰度化之前这张图片的数组值应该是一个三维的,灰度化之后将变为二维数组。数组行列数就是图片的像素宽度和高度。

    打印的数组形式如下:

    blob.png

    图片的二值化

    图片的二值化就是将上面的数组化为0和1的形式,转化之前我们要设定一个阈值,大于这个阈值的像素点我们将其设置为1,小于这个阈值的像素点我们将其设置为0。下面我找了一张数字的图片,这张图片已经灰度化过了。我们就直接将它二值化。图片如下:

    blob.png

    图片的像素是32x32的。如果不是要化为此值,这一步我们叫做尺寸归一化。

    #打开一张图片
    img = Image.open("numImage/3.jpg")
    #将图片化为32*21的
    img = img.resize((32, 32))
    #二值化
    img = img.point(lambda x:1 if x > 120 else 0) 
    #将图片转换为数组形式,元素为其像素的亮度值
    img_array = np.asarray(img)
    print img_array

    解释一下上面的代码,resize方法里的参数是一个元组,元素分别是宽和高;point函数是用来二值化图片的,其参数是一个lambda函数,函数体就是判断其元素值是否大于120,这里的120就是上面提到的阈值。

    二值化后的数组:

    blob.png

    在数组中我们可以大似的看到,数字1大似组成了一个3的形状。

    获取网格特征数字统计图

    在图片二值化之后,我们通常需要获取到网格统计图,这里我们的图片尺寸是32*32的,所以我们将其化为8*8的点阵图,步骤如下:

    1、将二值化后的点阵水平平均划线分成8份,竖直平均划线分成8份。

    2、分别统计每一份中像素点为1的个数。

    3、将每一个份统计值组合在一起,构成8*8的点阵统计图。

    下面我写了个函数来将32*32的数组转化成8*8的网格特征数字统计图:

     
    #将二值化后的数组转化成网格特征统计图 def get_features ( array ):     #拿到数组的高度和宽度     h , w  =  array. shape     data  =  [ ]     for x  in  range ( 0 , w/ 4 ):         offset_y  = x *  4         temp  =  [ ]         for y  in  range ( 0 ,h/ 4 ):             offset_x  = y *  4             #统计每个区域的1的值             temp. append ( sum ( sum ( array [ 0+offset_y: 4+offset_y , 0+offset_x: 4+offset_x ] ) ) )         data. append (temp )     return np. asarray (data )

    转化之后我们的到的数组点阵是这样的:

    blob.png

    将二维的统计图转化为一维的特征向量

    这一步就比较简单了,只需要将矩阵全部放到一行即可,直接使用np的reshape()方法即可:

    features_vector =features_array.reshape(features_array.shape[0]*features_array.shape[1])
    print features_vector

    输出结果:

    blob.png

    有些同学可能要问,为什么要将二维的点阵转化成一维的特征向量? 这是因为在机器学习中,数据集的格式就是这样的,数据集的一个样例就是一个特征向量,对个样例组成一个训练集。转化为以为的特征向量是便于我们的使用。

    全部代码(省略灰度化):

    from PIL import Image
    
    import numpy as np
    
    
    
    #将二值化后的数组转化成网格特征统计图
    
    def get_features(array):
        #拿到数组的高度和宽度
        h, w = array.shape
        data = []
        for x in range(0, w/4):
            offset_y = x * 4
            temp = []
            for y in range(0,h/4):
                offset_x = y * 4
                #统计每个区域的1的值
                temp.append(sum(sum(array[0+offset_y:4+offset_y,0+offset_x:4+offset_x])))
            data.append(temp)
        return np.asarray(data)
    
        
    
    #打开一张图片
    img = Image.open("numImage/3.jpg")
    #将图片化为32*32的
    img = img.resize((32, 32))
    
    
    #二值化
    img = img.point(lambda x:1 if x > 120 else 0)
    #将图片转换为数组形式,元素为其像素的亮度值
    img_array = np.asarray(img)
    print img_array
    #得到网格特征统计图
    features_array = get_features(img_array)
    print features_array
    features_vector =features_array.reshape(features_array.shape[0]*features_array.shape[1])
    print features_vector

    原文:http://www.k2zone.cn/?p=977

    展开全文
  • 题目是将图片库中的纹理图片裁剪成九份,其中五份做训练集,四份做测试集,先提取图片LBP特征 ,最后用svm支持向量机进行学习,在预测测试集里的图片是哪一类纹理。 正常情况下是需要调参的,即调整SVM的参数,但图...
  • 图片的分类主要包含以下四个步骤:1.用尺度不变特征转换(SIFT...4. 用支持向量机(SVM)训练一个多类分类器,将每张图片的词汇表作为特征向量。对于未知类别的图片,计算它的词汇表,使用训练的SVM分类器进行分类。
  • 向量

    千次阅读 2017-10-07 15:50:37
    向量


           向量是一个自然科学中的基本概念。这个概念可以用于数学中,可以用于物理学中,可以用于工程学中。是应用比较广泛的一个概念。它是一个同时具有几个方向和大小的几何对象。直观的图片上,人们通常用一个带着箭头的线段来表示向量。用箭头的长度来表示向量的大小。线段长,向量大,线段短,向量小。

    在物理的学习中,我们也知道向量也被称为矢量。它们是具有方向和大小的量。这个矢量可以用来表示物体的位移、物体的速度、物体的力、等等。在数学的学习中,人们也采用向量这个代数结构定义向量。

    向量的相乘是什么呢&#

    展开全文
  • 实现基本的几种图片分类算法,如决策树、支持向量机、随机森林等
  • 1、向量 $\vec a$\qquad $\overleftarrow{AB}$\qquad $\overleftrightarrow{AB}$\qquad $\overrightarrow{AB}$ 2、插入图片 1 \section{测试插入图片1} 2 \includegraphics[scale=0.4]{noise.jpg} 3 4 \...

    1、向量

    $\vec a$\qquad
    $\overleftarrow{AB}$\qquad
    $\overleftrightarrow{AB}$\qquad
    $\overrightarrow{AB}$
    

    2、插入图片

     1 \section{测试插入图片1}
     2 \includegraphics[scale=0.4]{noise.jpg}
     3     
     4 \section{测试插入图片2}
     5 \begin{figure}[ht]
     6 \includegraphics[scale=0.4]{noise.jpg}
     7 \caption{figure1. 测试图示2}
     8 \label{figl}
     9 \end{figure}
    10 
    11 \section{测试插入图片3}
    12 \begin{figure}[ht]
    13 \includegraphics[scale=1]{C:/Users/gaoyixue/Desktop/temp4.jpg}
    14 \end{figure}
    

    3、插入编号

    \begin{itemize}
        \item latex1
        \item latex2
        \item latex3
    \end{itemize}
    
    \begin{itemize}
        \item[1] latex1
        \item[2] latex2
        \item[3] latex3
    \end{itemize}
    
    \begin{enumerate}
        \item latex1
        \item latex2
        \item latex3
    \end{enumerate}
    
    \begin{enumerate}
        \item[(1)] latex1
        \item[(2)] latex2
        \item[(3)] latex3
    \end{enumerate}
    

    展开全文
  • python图片向量相关处理 访问文件夹下的图片 for root, dirs, files in os.walk(dir): if len(dirs)==0: lable=root[12:] for file in files: img=io.imread(root+’/’+file) #i...
  • 利用支持向量机学习并识别minst数据库中的图片,可以实现手写数字识别,所需要的minst数据库需要到minst官网下载
  • 主要介绍了javascript实现图片相似度算法,大家参考使用吧
  • 下面贴上计算过程的图片:首先了解一下向量点乘的几何意义为一个向量在另外一个向量的投影长度,即占据另外一个向量的百分比
  • 向量叉乘

    万次阅读 多人点赞 2017-04-19 15:00:02
    向量叉乘公式以及推导: 向量叉乘几何意义:
  • python实现图片读取为向量详解

    千次阅读 2018-11-04 10:38:42
    最近在实现cnn对于一系列图片的识别,于是就上网了解了一下图片读取的内容并整合一下。 在这里用了python3.6版本 使用的第三方库也只有numpy和PIL这两个库,所以上手很快。 下面按步骤详解: 第一: 导入这两个库 ...
  • 这是一个使用特征向量旋转图片的小程序。 您可以在您的应用程序中使用它。
  • 训练好caffemodel后,提取人脸图片的特征向量

    千次阅读 热门讨论 2017-05-13 18:01:42
    这篇博客主要介绍下用C++代码,提取出一张人脸图片的特征向量,这里的网络,是上文中用到了center loss的网络,根据论文里介绍的,我们提取出人脸图片以及该图片的上下翻转图各自经过网络在fc5层输出的特征向量,...
  • 独立成分分析算法与支持向量机在不良图片识别中的应用,学位论文
  • 【ML】支持向量机(SVM)从入门到放弃再到掌握

    万次阅读 多人点赞 2018-08-23 16:46:26
    朋友,你通过各种不同的途经初次接触支持向量机(SVM)的时候,是不是会觉得这个东西耳熟能详,感觉大家都会,却唯独自己很难理解? 每一次你的老板或者同仁让你讲解SVM的时候,你觉得你看过这么多资料,使用过...
  • 在Python2下运行的代码 我先把工程目录截图放上来: ... newImg = cv2.resize(img, (int(height) ,int(weight)), interpolation=cv2.INTER_...只要修改对应的参数,就可以把自己图片当成向量传给Tensorflow网络。
  • 利用MATLAB编写的程序,利用支持向量机完成对图片的多分类任务,包含完整程序文件与图片集文件。程序我已经在MATLAB R2016b中调试通过。可以使用。
  • HSV特征向量提取

    2015-07-06 18:36:21
    基于HSV提取图片的特征向量,将图片用一个向量表示,以便存储利用!
  • 在有大量的图片样本时,我们首先需要读取图片,将其转化为numpy数组,并在控制台打印出来,直观地看到图片对应的矩阵是什么样子的。 二、python程序 // 将图片转换为numpy数组,并在控制台打印 from PIL import ...
  • 时钟向量简介

    2017-05-24 17:24:19
    时钟向量简介本文以论文“FastTrack”中的一张图片为材料,分析时钟向量的使用方法。论文如下:图片如下: C0表示线程0的时钟向量,对应第0列为线程0的时间戳 C1表示线程0的时钟向量,对应第1列为线程1的时间戳 ...
  • Fisher向量编码的局部补丁向量用于图像分类
  • 2016高中数学2.2平面向量的线性运动习题课B图片版新人教A版必修4
  • 2016高中数学2.2平面向量的线性运动习题课A图片版新人教A版必修4

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 113,323
精华内容 45,329
关键字:

向量图片