精华内容
下载资源
问答
  • 最新:https://gitee.com/ulxy/librowser 支持直读迭代资源 自动扫描wdf文件was文件夹
  • 易语言梦幻WAS提取源码系统结构:RLE解码,Alpha565,Rgb565to888,后6位,后5位,右移_,左移_,取bit, ======窗口程序集1 || ||------__启动窗口_创建完毕 || ||------RLE解码 || ||------Alpha565 || ||------Rgb565to888
  • ubuntu rar文件Want to know how to extract a RAR file on Ubuntu? RAR is one of the most common forms of data compression used in the industry. While ZIP allows wider accessibility for the users, RAR ...

    rar文件ubuntu

    Want to know how to extract a RAR file on Ubuntu? RAR is one of the most common forms of data compression used in the industry. While ZIP allows wider accessibility for the users, RAR retains its prominence over the former due to its reputation for being a better choice for compression. 

    想知道如何在Ubuntu上解压缩RAR文件吗? RAR是行业中最常用的数据压缩形式之一。 尽管ZIP可以为用户提供更广泛的可访问性,但是RAR仍然是前者的突出优势,因为它以压缩的更好选择而闻名。

    It is not uncommon for someone to download some files from the web and realize that it is part of a RAR package. So we need to have tools to deal with such files. 

    有人从网上下载一些文件并意识到它是RAR软件包的一部分,这种情况并不罕见。 因此,我们需要具有处理此类文件的工具。

    什么是RAR文件? (What are RAR files?)

    RAR is a compression method that uses a set of multi-volume files to slip and condense a file’s size. When we need to transfer a large amount of data, this comes in handy as a compressed file is faster to be shared or replicated. These files also take less time to download over the internet compared to non-compressed files.

    RAR是一种压缩方法,它使用一组多卷文件来滑动和压缩文件的大小。 当我们需要传输大量数据时,这非常方便,因为压缩文件的共享或复制速度更快。 与非压缩文件相比,这些文件在Internet上的下载时间也更少。

    These advantages make file compression a popular practice. There are many tools available to extract and create RAR files. These tools help a user deal extract files in seconds, irrespective of the size of the archive.

    这些优点使文件压缩成为一种流行的做法。 有许多工具可用于提取和创建RAR文件。 这些工具可帮助用户在几秒钟内处理提取文件,而不管归档文件的大小如何。

    在Ubuntu上解压缩RAR文件需要什么? (What’s needed to extract a RAR file on Ubuntu?)

    This tutorial was made with a system running Ubuntu 18.04, but you can follow this tutorial if you have the 2 things below.

    本教程是使用运行Ubuntu 18.04的系统制作的,但是如果您具有以下两点,则可以按照本教程进行操作。

    • Ubuntu/Debian based system (or switch the package install commands based on your distro)

      基于Ubuntu / Debian的系统(或根据您的发行版切换软件包安装命令)
    • A non-root user with Sudo privileges

      具有Sudo特权的非root用户

    When dealing with RAR files, WinRAR has always given an edge to Windows users over Linux users. Linux users have to download a compatible program or rely on the command line to extract RAR files.

    在处理RAR文件时,WinRAR始终比Windows用户更能给Windows用户带来优势。 Linux用户必须下载兼容程序或依靠命令行来提取RAR文件。

    Users have to deal with this issue not just to create a RAR file, but also when they try to extract a RAR file on Ubuntu.

    用户不仅要创建RAR文件,而且要在Ubuntu上提取RAR文件时,都必须处理该问题。

    默认的Ubuntu Archiver可以提取RAR文件吗? (Can the default Ubuntu Archiver extract RAR files?)

    Maybe. The default Archiver on Ubuntu is simply a GUI wrapper for the command line packages available on your system. If you have the unrar package installed, you will be able to extract a rar file without any issues.

    也许。 Ubuntu上的默认Archiver只是系统上可用命令行包的GUI包装。 如果您安装了unrar软件包,则可以提取rar文件,而不会出现任何问题。

    But if you don’t have the package installed, and you try to extract a RAR file on Ubuntu by double-clicking it, you won’t be successful.

    但是,如果您没有安装该软件包,并且尝试通过双击Ubuntu上的RAR文件来提取它,那么您将不会成功。

    Instead, you will get a message from the archive manager simply telling you the following.

    相反,您将从存档管理器中收到一条消息,仅告诉您以下内容。

    There is no command installed for RAR archive files. Do you want to search for a command to open this file?

    没有为RAR存档文件安装命令。 您要搜索打开该文件的命令吗?

    Ubuntu, by default, doesn’t recognize the .rar file type, just like all Linux based systems.

    默认情况下,Ubuntu无法识别.rar文件类型,就像所有基于Linux的系统一样。

    This tutorial will teach you how to install and utilize the tools you need to extract a RAR file on Ubuntu.

    本教程将教您如何安装和利用在Ubuntu上解压缩RAR文件所需的工具。

    在Ubuntu上安装unrar软件包 (Installing the unrar package on Ubuntu)

    Despite being so popular, files using the RAR compression method is not supported by the default archive manager in Ubuntu. To extract a RAR file on Ubuntu, you need to install a program called UNRAR. 

    尽管非常流行,但Ubuntu中的默认存档管理器不支持使用RAR压缩方法的文件。 要在Ubuntu上解压缩RAR文件,您需要安装一个名为UNRAR的程序。

    The unrar package is a CLI-based RAR archive manager developed by RARLAB and it is available to Linux users as freeware. unrar is available to Linux users as part of the default Ubuntu repository.

    unrar软件包是RARLAB开发的基于CLI的RAR存档管理器,Linux用户可以将其作为免费软件使用。 unrar作为默认Ubuntu存储库的一部分可供Linux用户使用。

    To install unrar on your system, you need to use the command line. Open the terminal on your system and use the apt package manager to install the unrar service. The command should look like this.

    要在系统上安装unrar,您需要使用命令行。 打开系统上的终端,然后使用apt软件包管理器安装unrar服务。 该命令应如下所示。

    
    sudo apt install unrar
    

    Now, typing the command unrar will help you understand how the archive manager works and how to use it. Your terminal should give an output similar to the one given below.

    现在,键入命令unrar将帮助您了解存档管理器如何工作以及如何使用它。 您的终端应提供类似于以下给出的输出。

    Unrar Help 1
    Unrar Help 1
    Unrar帮助1

    使用GUI提取RAR文件 (Extract a RAR file using GUI)

    When you read the user manual of UNRAR, the most common use available for you will be to extract a RAR file on Ubuntu. There are two methods to do this. 

    当您阅读UNRAR的用户手册时,最常用的用途是在Ubuntu上解压缩RAR文件。 有两种方法可以做到这一点。

    This method is pretty straightforward.

    此方法非常简单。

    1. You simply need to go to the location where your RAR file is stored on your system.

      您只需要转到系统上存储RAR文件的位置。
    2. Now you can select your archive

      现在您可以选择档案了
    3. Right-click to extract it at your desired location. 

      右键单击以将其解压缩到所需位置。

    Now let’s move on to extracting a rar file using the command line on Ubuntu.

    现在,让我们继续在Ubuntu上使用命令行提取rar文件。

    使用命令行在Ubuntu上解压缩RAR文件 (Extract a RAR file on Ubuntu using the command line)

    First, you need to go to the directory where you have saved your RAR file. If the file is not in the home directory, we can use the cd command to shift to the directory holding our RAR file.

    首先,您需要转到保存RAR文件的目录。 如果该文件不在主目录中,则可以使用cd命令转到包含RAR文件的目录。

    In this case, I have saved a rar file in my root directory. Let’s cd to it and extract the file.

    在这种情况下,我已经在我的根目录中保存了一个rar文件。 让我们对其进行cd并解压缩文件。

    Once we are in the right directory, we use the unrar command to extract the contents of our RAR archive. To do this, we simply write the following command in the terminal.

    进入正确的目录后,我们使用unrar命令提取RAR存档的内容。 为此,我们只需在终端中编写以下命令。

    
    unrar x <filename>.rar
    
    Unrar Extract
    Unrar Extract
    Unrar摘录

    Once done, it will also show you the report on the extraction process. As you can see above, the extraction went ‘All OK’.

    完成后,它还将向您显示提取过程的报告。 正如您在上面看到的那样,提取结果为“一切正常”。

    将文件提取到特定目录 (Extracting your file to a specific directory)

    Sometimes you need to extract a RAR file on Ubuntu to a location which isn’t the home directory where our archive is saved. For this, make sure you create a directory first if it already doesn’t exist by using the mkdir command.

    有时,您需要在Ubuntu上将RAR文件解压缩到一个位置,该位置不是保存存档的主目录。 为此,请确保首先使用mkdir命令创建目录(如果该目录尚不存在)。

    This is especially useful when the directory which holds the RAR archive is not the same as the directory where we wish to save the extracted files.

    当保存RAR存档的目录与我们希望保存提取文件的目录不同时,这特别有用。

    
    unrar e FileName.rar </ExtractLocation/>
    
    Unrar Extract To Directory
    Unrar Extract To Directory
    Unrar提取到目录

    As you can see in the screenshot above, I’ve highlighted the section which mentions where the files were extracted.

    如您在上面的屏幕快照中所见,我突出显示了提到文件提取位置的部分。

    结语 (Wrapping up)

    The use of RAR compression is widespread today. While Linux based systems don’t support .rar files directly, we have tools which can assist us to extract a RAR file on Ubuntu.

    如今,RAR压缩的使用非常普遍。 虽然基于Linux的系统不直接支持.rar文件,但我们有一些工具可以帮助我们在Ubuntu上提取RAR文件。

    This tutorial was based on using UNRAR, a freeware developed by RARLAB, to extract a RAR file on Ubuntu.

    本教程基于使用RARLAB开发的免费软件UNRAR在Ubuntu上提取RAR文件的基础。

    While the debate on whether RAR files are better or ZIP will continue, we hope this tutorial was able to help you with extracting RAR files on your system.

    关于RAR文件是更好还是ZIP的争论将继续,我们希望本教程能够帮助您提取系统上的RAR文件。

    If you have any queries, feedback or suggestions, feel free to reach out to us in the comments below.

    如果您有任何疑问,反馈或建议,请随时通过以下评论与我们联系。

    翻译自: https://www.journaldev.com/38134/extract-rar-file-on-ubuntu

    rar文件ubuntu

    展开全文
  • WDF资源提取源码

    2018-07-13 22:10:36
    WDF,WAS,MAP资源提取直读源代码,可以用于学习研究,资源转自互联网,若有侵权,请联系站长删除。
  • Meta Reader Project 的目的不仅是为用户提供从众所周知的文件格式中提取元数据的免费工具,而且还提供了一个开源库,可以轻松地为鲜为人知或自定义的文件格式实现 Meta Reader 模块。 此外,实时文件处理是 Meta ...
  • 读取文件元数据的Ruby库。 该api提供了基本用法和高级用法。 每次调用文件时,基本用法都会重新打开并重新解析文件,这在读取单个值时没问题,但可能会浪费多个值。 高级用法允许用户获取多个值,而不必多次读取...
  • python解析csv文件 提取数据

    千次阅读 2017-02-27 16:41:46
    alexa 网站列表是以电子表格的形式提供的,表格中有两项内容,分别是排名和域名 - A B 1 1 ... 2 2 ... 3 ...1.下载zip文件 2.从zip文件阿忠提取csv文件 3.解析csv文件 4.遍历csv文件中的每一行,

    alexa 网站列表是以电子表格的形式提供的,表格中有两项内容,分别是排名和域名

    -AB
    11google.com
    22facebook.com
    33youtube.com

    抽取数据包含如下四个步骤:
    1.下载zip文件
    2.从zip文件阿忠提取csv文件
    3.解析csv文件
    4.遍历csv文件中的每一行,从中提取数据

    下面是实现上面功能的代码:
    其中Downloader的内容:

    #-*- coding=utf-8 -*-
    import re
    import urlparse
    import urllib2
    import time
    from datetime import datetime
    import robotparser
    import Queue
    from bs4 import BeautifulSoup
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    import  csv
    import lxml.html
    import  random
    import  cssselect
    import socket
    
    DEFAULT_AGENT='wswp'
    DEFAULT_DELAY=5
    DEFAULT_RETRIES=1
    DEFAULT_TIMEOUT=60
    
    class Throttle:
        """Throttle downloading by sleeping between requests to same domain
        """
    
        def __init__(self, delay):
            # amount of delay between downloads for each domain
            self.delay = delay
            # timestamp of when a domain was last accessed
            self.domains = {}
    
        def wait(self, url):
            domain = urlparse.urlparse(url).netloc
            last_accessed = self.domains.get(domain)
    
            if self.delay > 0 and last_accessed is not None:
                sleep_secs = self.delay - (datetime.now() - last_accessed).seconds
                if sleep_secs > 0:
                    time.sleep(sleep_secs)
            self.domains[domain] = datetime.now()
    
    class Downloader:
        def __init__(self,delay=5,user_agent='wswp',proxies=None,num_retries=1,timeout=60,opener=None,cache=None):
            socket.setdefaulttimeout(timeout)
            self.throttle=Throttle(delay)
            self.user_agent=user_agent
            self.proxies=proxies
            self.num_retries=num_retries
            self.opener=opener
            self.cache = cache
    
        def __call__(self,url):
            result=None
            if self.cache:
                try:
                    result=self.cache[url]
                except KeyError:
                    #网址在缓存里面不可用
                    pass
            #else:
                #if result is not None and self.num_retries >0 and 500<=result['code']<600:
                    #遇到了服务器的故障 并且重新下载
             #       result=None
            if result==None:
                # 结果并没有在cache中
                #所以仍然需要重新下载
                self.throttle.wait(url)
                proxy=random.choice(self.proxies) if self.proxies else None
                headers={'user_agent':self.user_agent}
                result=self.download(url,headers,proxy,self.num_retries)
                if self.cache:
                    #保存结果进入cache
                    self.cache[url]=result
            return result['html']
    
        def download(self,url,headers,proxy,num_retries,data=None):
            print 'Downlaoding:',url
            request=urllib2.Request(url,data,headers or{})
            opener=self.opener or urllib2.build_opener()
            if proxy:
                proxy_params={urlparse.urlparse(url).scheme:proxy}
                opener.add_handler(urllib2.ProxyHandler(proxy_params))
            try:
                response=opener.open(request)
                html=response.read()
                code=response.code
            except Exception as e:
                print 'Download error:',str(e)
                html=''
                if hasattr(e,'code'):
                    code=e.code
                    if num_retries>0 and 500<=code<600:
                        return self.download(url,headers,proxy,num_retries-1,data)
                else:
                    code=None
            return {'html':html,'code':code}
    
    
    
    
    
    
    #-*- coding=utf-8 -*-
    import csv
    from zipfile import ZipFile
    from StringIO import StringIO
    from downloader import Downloader
    
    D=Downloader()
    zipped_data=D('http://s3.amazonaws.com/alexa-static/top-1m.csv.zip')
    urls=[]
    with ZipFile(StringIO(zipped_data))as zf:
        csv_filename=zf.namelist()[0]
        for _,website in csv.reader(zf.open(csv_filename)):
            urls.append('http://'+website)

    可能已经注意到,下载的压缩数据狮子啊使用StringIo封装之后才传给ZipFile的。这是因为ZipFile需要一个类似文件的接口,而不是字符串。接下来我们从压缩文件中提取文件的列表。由于这个.zip 文件只包含一个文件,所以我们直接选择第一个文件即可。然后遍历该csv文件将第二列中的域名数据添加到URl列表中。

    展开全文
  • python人脸识别

    万次阅读 多人点赞 2019-03-05 15:31:19
    这一步我们要做的就是,将我们上一步保存的人脸数据,通过使用dlib 提取人脸特征然后保存到文件里面 这样我们就拥有了 某张脸的数据了, 下次直接使用这个数据和新的数据比对就可以确定是否是同一个人 人脸转为...

    之前曾经写过一篇博客,使用dlib进行人脸检测,就是检测视频中是否出现了人脸,dlib 还可以实现人脸识别。因此今天更新博客主要是记录如何使用 python + opencv + dlib 实现人脸识别

    源代码已经托管到github,下拉到底部即可看到

    人脸识别的主要算法

    其核心算法是 欧式距离算法使用该算法计算两张脸的面部特征差异,一般在0.6 以下都可以被认为是同一张脸

    人脸识别的主要步骤

    1 获得人脸图片
    2 将人脸图片转为128D的矩阵(这个也就是人脸特征的一种数字化表现)
    3 保存人脸128D的特征到文件中
    4 获取其他人脸转为128D特征通过欧式距离算法与我们保存的特征对比,如果差距在0.6以下就说明两张脸差距比较小

    准备工作

    人脸识别需要下载两个文件:
    wget http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
    wget http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
    下载完成后 通过 bzip2 -d 命令解压这两个压缩包

    以下就按照上面的步骤一步一步去实现人脸识别

    1 获取人脸

    获取人脸的方式有两种途径
    1 通过图片
    2 通过摄像头采集

    图片方式

    通过图片获取人脸 demo(需要检查图片中是否包含了人脸)

    import cv2
    import dlib
    
    picture = '/home/sunshine/faces/harden1.jpg'
    detector = dlib.get_frontal_face_detector()
    
    def add_face_from_image(image):
    	imdata = cv2.imread(image)
    	rgb_image = cv2.cvtColor(imdata, cv2.COLOR_BGR2RGB)
    	faces = detector(rgb_image, 1)
    	if len(faces) == 0:
    		print("没有检测到人脸")
    	else:
    	     # 到此就获取到了人脸数据
    	     pass
    
    视频方式

    通过视频方式获取人脸demo 这种方式需要把视频的图片截取下来保存到指定的路径

    import cv2
    import dlib
    from pathlib import Path
    video = cv2.VideoCapture(0)
    save_path = '/home/fantasy/faces'
    
    def read_camera0():
        """
        读取摄像头
        """
    
        while 1:
            ok, frame = video.read()
            if not ok:
                print("读取摄像头#0失败")
                return
            else:
                yield frame
    
        video.release()
    
    def putText(image, text, location=(100, 150), font=cv2.FONT_HERSHEY_COMPLEX, size=1.1, color=(0, 255, 255), font_weight=2):
        """
        往视频上加文字
        param: image 视频/图片
        param: text  文字内容
        param: location 文字的位置
        param: font 字体
        param: size:  字体大小
        param: color: 字体颜色
        param: font_weight 字体粗细
        """
        cv2.putText(image, text, location, font, size, color, font_weight, lineType=cv2.LINE_AA)
    
    def add_face_from_camera():
    	frames = cv_tools.read_camera0()
        count = 0
        for frame in frames:
            image_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
            title = 'Register'
            press = cv2.waitKey(2)
            data = detector(image_rgb)
            if len(data) == 0:
                putText(frame, "No face was detected!", color=(0, 0, 255))
            if press == ord('q'):
                break
            if press == ord('a'):
                if len(data) == 0:
                    putText(frame, "No face was detected!", color=(0, 0, 255))
                else:
                    count += 1
                    impath = Path(save_path).joinpath('%s.jpg' % count)
                    print("保存照片 %s" % impath)
                    cv2.imwrite(str(impath), frame)
            cv_tools.putText(frame, 'a:Add', location=(40, 300))
            cv_tools.putText(frame, 'q:Quit', location=(40, 350))
            cv_tools.putText(frame, 'save count:%s' % count, location=(40, 400), size=1.0)
            cv2.imshow(title, frame)
        cv2.destroyAllWindows()
    

    视频的方式需要注意几点
    1 我使用的是笔记本电脑因此 通过 cv2.VideoCapture(0) 方法默认就是获取到笔记本默认的摄像头,如果你的台式机没有摄像头或者是外接摄像头可能就无法获取
    2 视频的方式保存图片 需要将光标点击到视频,然后按 a 键, 退出就按 q 键
    3 视频中如果没有检查到人脸就会出现提示 No face was detected! 此时是没法保存图片的

    视频方式截图在这里插入图片描述

    到这一步就完成了 获取人脸照片,保存到指定的路径了

    2-3 将获取到的人脸数据转为128D 数据,并保存到文件

    这一步我们要做的就是,将我们上一步保存的人脸数据,通过使用dlib 提取人脸特征然后保存到文件里面
    这样我们就拥有了 某张脸的数据了, 下次直接使用这个数据和新的数据比对就可以确定是否是同一个人

    人脸转为128D特征数据demo

    import os
    import cv2
    import dlib
    from imutils import paths
    
    face_image = '/home/sunshine/faces'
    predictor_path = '/home/fantasy/MachineLearning/cv/shape_predictor_5_face_landmarks.dat'
    face_model_path = '/home/fantasy/MachineLearning/cv/dlib_face_recognition_resnet_model_v1.dat'
    
    def prepare():
        """
        """
        if not os.path.exists('feature'):
            os.mkdir('feature')
        if os.path.exists('feature'):
            shutil.rmtree('feature')
            os.mkdir('feature')
    
    def get_detector():
        """
        """
        return dlib.get_frontal_face_detector()
    
    
    def get_predictor():
        """
        """
        return dlib.shape_predictor(predictor_path)
    
    def get_face_model():
        """
        """
        return dlib.face_recognition_model_v1(face_model_path)
    
    def get_faces_image():
        """
        """
        return paths.list_images(face_image)
    
    def faces_to_128D():
        """
        """
        prepare()
        faces = get_faces_image()
        detector = get_detector()
        predictor = get_predictor()
        face_model = get_face_model()
        count = 0
        for image in faces:
            imdata = cv2.imread(image)
            image_rgb = cv_tools.bgr2rgb(imdata)
            has_face = detector(image_rgb, 1)
            if len(has_face) == 0:
                print("未检测到人脸 %s" % image)
                continue
            count += 1
            shape = predictor(image_rgb, has_face[0])
            face_desc = face_model.compute_face_descriptor(image_rgb, shape)
            feature_array = np.array([])
            for _, desc in enumerate(face_desc):
                feature_array = np.append(feature_array, desc)
            filename = str(count) + '.csv'
            filename = os.path.join('feature', filename)
            print("保存 %s 特征文件 %s" % (image, filename))
            face_feature_to_csv(filename, feature_array)
    
    def face_feature_to_csv(filename, col):
        """
        """
        np.savetxt(filename, col, delimiter=',')
    
    
    

    在这里插入图片描述

    通过上面的步骤我们把之前通过图片或者视频方式获取到的人脸提取到了特征 保存在文件里面了

    4 人脸对比

    通过前面的方式我们已经拥有了一个可以识别某张脸的数据,现在就需要采集到其他的人脸图片转为128D再和我们保存的数据,使用欧式距离方式进行对比

    人脸对比的demo 从摄像头或者图片从获取人脸对比已有的数据

    import cv2
    import dlib
    import glob
    import numpy as np
    # 保存人脸特征的csv文件路径
    csv_path = '/home/sunshine/feature'
    all_load_feature = []
    # 1 先把保存的人脸特征读取到
    
    def load_face_feature():
        """
        """
        all_csv = glob.glob(csv_path + '/*.csv')
        for filename in all_csv:
            array = np.loadtxt(filename, delimiter=',')
            print("加载已有的面部特征文件 %s" % filename)
            all_load_feature.append(array)
    
    # 2 再从摄像头或者 图片从获取一张人脸,转为128D数据和现有的对比
    
    def read_face_from_image(image):
       """
       通过从图片中获取人脸
       """
       imdata = cv2.imread(image)
       face_compare(imdata)
       cv2.imshow("face recogition", imdata)
       key = cv2.waitKey(0)
       if key == ord('q'):
           cv2.destroyAllWindows()
    
    
    def face_compare(face_image):
         """
         """
         rgb_image = cv2.cvtColor(face_image, cv2.COLOR_BGR2RGB)
         im_shape = rgb_image.shape
         im_height = im_shape[0]
         im_width = im_shape[1]
         faces = detector(rgb_image, 1)
         # 要检查图片中是否包含人脸
         if len(faces) == 0:
             putText(face_image, "No face was detected!", color=(0, 0, 255))
         else:
         	 # 将图片中的人脸转为128D数据
             feature = face_feature(rgb_image, faces)
             csv_feature = random.choice(all_load_feature)
             # 使用欧式距离计算两张脸的差距
             same = face_recogition(feature, csv_feature)
             if same:
                 putText(face_image, "Yes!", location=(int(im_height/2), int(im_width/2)))
             else:
                 putText(face_image, "No!", location=(int(im_height/2), int(im_width/2)), color=(0, 0, 255))
    
    
    def face_feature(image, faces):
        """
        """
        model = get_face_model()
        predictor = get_predictor()
        array = np.array([])
        shape = predictor(image, faces[0])
        face_desc = model.compute_face_descriptor(image, shape)
        for _, desc in enumerate(face_desc):
            array = np.append(array, desc)
        return array
    
    
    def face_recogition(face1, face2):
        """
        """
        # 计算两张脸的欧式距离 方法 1
        # distance = 0
        # for i in range(len(face1)):
        #     distance += (face1[i] - face2[i])**2
        # distance = np.sqrt(distance)
        # 计算两张脸的欧式距离 方法 2
        # distance = np.sqrt(np.sum(np.square(face1 - face2)))
        # 计算两张脸的欧式距离 方法 3
        distance = np.linalg.norm(face1- face2)
        print(distance)
        if(distance < 0.5):
            return True
        else:
            return False
    
    def read_face_from_camera0():
        """
        从摄像头获取人脸
        """
        video = read_camera0()
        for frame in video:
            face_compare(frame)
            cv2.imshow("face recogition", frame)
            key = cv2.waitKey(1)
            if key == ord('q'):
                break
        cv2.destroyAllWindows()
    

    以下是我从图片中输入了一张人脸,并将这张人脸特征保存到1.csv
    在这里插入图片描述

    然后再分别给一张是同一个人,不同人的脸的输出结果

    在这里插入图片描述

    在这里插入图片描述

    源代码已经托管到github 喜欢的欢迎给我 star
    代码地址:
    https://github.com/pythondever/python-dlib-face-recognition

    附: 人脸识别的原理:
    https://zhuanlan.zhihu.com/p/24567586

    展开全文
  • 梦幻资源提取器WasTools2.0 提取梦幻资源包中的图片信息
  • 大话西游地图资源高清提取
  • OpenStack

    千次阅读 多人点赞 2019-10-30 18:10:35
    OpenStack概述 OpenStack是一个免费开放源代码的云计算...Enter the SSL keyfile corresponding to the certificate if one was entered: Enter the PCI passthrough array of hash in JSON style for controller ...

    OpenStack概述

    OpenStack是一个免费开放源代码的云计算平台,用户可以将其部署成为一个基础设施即服务(Iaas)的解决方案。OpenStack不是一个单一的项目,而是由许多相关的项目组成,包括Nova、Swift、Keystone、Horizon等。这些项目分别实现了不同的功能,例如弹性计算服务、对象存储服务、虚拟机磁盘镜像服务、安全统一认证服务以及管理平台

    OpenStack最早开始于2010年,作为美国国家航空航天局和Rackspace合作研发的云端运算软件项目,目前OpenStack由OpenStack基金会管理,该基金会是一个非营利性组织,创立于2012年。现在有超过200家公司参与了该项目,包括Arista Networks、AT&T、AMD、Cisco、Dell、EMC、HP、IBM、Intel、NEC、NetApp、Red Hat等大型公司

    OpenStack发展非常迅速,已经发布了11个版本,每个版本都有代号,分别为Austin、Bexar、Cactus、Diablo、Essex、Folsom、Grizzly、Havana、Icahouse、Juno以及最新的Kilo

    除了OpenStack之外,还有一些其他的云计算平台,例如Eucalyptus、AbiCloud、OpenNebula等,这些云计算平台都有自己的特点

    PackStack详解

    PackStack主要是由RedHat推出的用于概念验证(PoCket)环境快速部署的工具,PackStack是一个命令行工具,它使用了P

    展开全文
  • 如何查看WAS生成的Snap.***.trc文件

    千次阅读 2015-08-13 23:21:47
    WAS发生heapdump时随之还产生了javacore和Snap.***.trc文件 Snap.***.trc文件无法直接查看,需要对其进行格式化,就算用文本编辑器打开看见的也是有很多乱码 跟踪格式化器(trace formatter) 是一个可以在任何平台...
  • 该工具可以查看wdf、map、was,属于梦幻西游单机版开发所必备的一些工具
  • matlab提取文件要素代码dm3ReaderAddon 标准操作过程:dm3ReaderAddon.m作者:Phong Hien Nguyen日期:2017年8月2日目的 此MATLAB程序的预期目的是从电子能量损失谱(EELS)图像中提取元素浓度信息。 快速入门指南 ...
  • 特征提取算法简单学习笔记

    万次阅读 2018-01-30 14:21:13
    特征提取:将原始特征转换为一组具有明显物理意义(Gabor、几何特征[角点、不变量]、纹理[LBP HOG])或者统计意义或核的特征 特征选择:从特征集合中挑选一组最具统计意义的特征,达到降维 我的理解: 特征提取:...
  • NARF(Normal Aligned Radial Feature)关键点是为了从深度图像中识别物体而提出的,对NARF关键点的提取过程有以下要求: a) 提取的过程考虑边缘以及物体表面变化信息在内;b)在不同视角关键点可以被重复探测;c)关键...
  • 超梦工具包,梦幻西游素材读取工具,可以读取梦幻西游WDF格式素材以及地图文件,WDF素材读取支持选择每页浏览数量,
  • [C++] Log文件遍历与关键词提取

    千次阅读 2018-07-02 22:05:57
    程序员日常工作中少不了要debug,根据Log来分析code。...但是往往log文件通常很多,为了看Log方便,特意编写了一个小程序,可以将多个相同格式的文件,如 .txt, 或者.log, 根据关键词索引提取到一个相...
  • R语言笔记一

    万次阅读 多人点赞 2016-06-19 21:44:10
    file.path(“mytest3.R”) ##在众多工作文件中,指定提供某个文件的相对路径。 file.path(“folder1”,”folder2”) ##”folder1/folder2”也能创建独立于系统的路径供R工作。? Create a directory in the ...
  • HTML标签常用标签

    千次阅读 多人点赞 2017-02-23 11:33:58
    The <abbr title="People's Republic of China">PRC</abbr> was founded in 1949. HTML 4.01 与 HTML5 之间的差异:无。 详见: http://www.w3school.com.cn/tags/tag_abbr.asp 5 、 标签 ...
  • WASCE上部署运行RQM

    2021-02-27 03:17:57
    内容RQM和WASCE简介先决条件安装WASCE服务器从RQM安装文件提取文件配置数据库配置安全认证安装RQM访问配置RQM配置RQM总结参考资料简介: 在这篇教程中,我们会逐步引导您将IBMRationalQualityManager(RQM)安装...
  • cin详解

    千次阅读 2015-08-14 22:37:40
    Either the delimiting character was not found or no characters were extracted at all (because the end-of-file was before the first character or because the construction of sentry failed). ...
  • wasi-fs-access ... 出于演示目的,选择了的,但是对于为WebAssembly + WASI目标编译的任何应用程序,应该可以提取并重用相同的绑定。 请注意,由于WASI本身的限制,文件系统访问API的限制(例如,对符
  • 利用cadence 的 extracta.exe 提取 brd/sip/mcm 通用cmd文件
  • 用ffmpeg处理视频时,有时需要从视频里提取某个时间的一帧视频数据,这时需要用到ffmpeg的一个关键函数,av_seek_frame。 av_seek_frame原型如下: int av_seek_frame(AVFormatContext *s, int stream_index, int64...
  • 用户提取大话2 梦幻 大话3 大话外传的 was/wap/tca/tcp 游戏精灵文件的图片为TGA格式。 注:提取颜色和云风的glowtools提取的有很小的差别,肉眼不容易识别。原因是我用的RGB565转RGB888算法和云风不一样。
  • Dlib模型之驾驶员疲劳检测一(眨眼)

    万次阅读 多人点赞 2019-12-10 17:09:48
    后者是用来检测一个区域内的特征点,并输出这些特征点的坐标,它需要一个预先训练好的模型(通过文件路径的方法传入),才能正常工作。 使用开源模型 shape_predictor_68_face_landmarks.dat ,可以得到68个特征...
  • 一、NARF关键点提取 1、背景 关键点也称为兴趣点,是通过定义检测标准来获取的具有稳定性、区别性的点集。从技术上来说,关键点的数量要比原始点云的数目少很多,与局部特征描述子结合在一起,组成关键点描述子常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,375
精华内容 9,750
关键字:

was文件提取