当前位置: 首页 > news >正文

宠物网站建设目标合肥网络运营公司

宠物网站建设目标,合肥网络运营公司,wordpress app theme,wordpress二次元风格在过去的一年里#xff0c;我发现苹果系统中的“文字搜图片”功能非常好用#xff0c;这个功能不光 iPhone/iPad#xff0c;Mac 也有#xff0c;找一些图片真的很好用。但是遇到了一个问题#xff1a;这个功能需要一段时间才能找到新的图片#xff0c;而且没法手动刷新我发现苹果系统中的“文字搜图片”功能非常好用这个功能不光 iPhone/iPadMac 也有找一些图片真的很好用。但是遇到了一个问题这个功能需要一段时间才能找到新的图片而且没法手动刷新这对于外接硬盘里的图片来说不方便。所以就想自己能不能写一个类似的程序来查找一些图片。 这个程序的功能还挺好实现的就是通过图片中的文字或者物体进行查找而这两个功能苹果都替我们做好了我们可以做到苹果演示的文本识别和相册识别所能达到的效果。不过本文只讲述如何使用 Vision 识别图片中的文字因为识别图像和本文类似存放这些数据到数据库中我也写过如何使用 Core Data 的博客SwiftUI——Core Data数据库的使用在纯SwiftUI生命周期中。 本文较长建议通过侧边栏跳转阅读。 简单介绍 Vision 首先简单介绍一下 Vision Vision 是一个计算机视觉算法的架构可以对图像和视频执行多种任务。支持 iOS 11/iPad OS 11/macOS 10.13/tvOS 11 或更新系统。支持 ISO 语言代码中的所有语言。 需要注意由于汉字的复杂性自定义单词customWords功能和语言矫正功能对于中文不可用。 需要注意 Vision 是包含在这些系统中的而不是程序里所以编译出来的程序本身并不会很大并且结果精度和系统版本挂钩后续会有演示。但很可惜的是对于中文手写的识别不太好精度不是很好但是对于英文的识别还是不错的。 比如这样的一张手写英文汉字的图像 在最新的 iPad OS 16 中识别出来为 中文识别精度可见非常不行。 测试图片 测试图片是一张系统截图不使用手写图的原因上面你也看到了中文识别很难说达到了可用的程度。 将其命名为info放在一个你喜欢的位置和放在 Assets 中方便后续使用如下 不同平台的代码实现 接下来将会介绍如何在 iOS/iPad OS 和 macOS 上识别获取图像中的文本将会分为两部分来说。按需求来说不应该有 iOS/iPad OS但是想都试试看万一用的到呢 分为两部分是因为在 iOS/iPad OS 系统上使用的图像格式为UIImage而 macOS 中使用的是NSImage不过二者只有一小部分不一样。 这里的NS前缀表示“NeXTSTEP”这是当年乔布斯回到苹果带回来的成果。 iOS/iPad OS 这里使用 SwiftUI 来进行布局。 首先导入框架和库 import SwiftUI import Vision然后新建一个视图内容如下为了阅读和复制代码的体验在注释中解释代码的含义 struct ContentView: View {//这个字符串数组是为了存放获取的文本State var textStrings [String]()//这个name用来指定使用哪个图像如果想用其他图像修改这个变量就行State var name infovar body: some View {VStack {Image(uiImage: UIImage(named: name)!)//这个循环是显示获取的文本ForEach(textStrings, id: \.self) { testString inText(testString)}}.padding()//这样一打开App就自动识别了.onAppear(perform: {//生成执行需求的CGImage也就是对这个图片进行OCR文本识别guard let cgImage UIImage(named: name)?.cgImage else { return }//创建一个新的图像请求处理器let requestHandler VNImageRequestHandler(cgImage: cgImage)//创建一个新的识别文本请求let request VNRecognizeTextRequest(completionHandler: handleDetectedText)//使用accurate模式识别不推荐使用fast模式因为这是采用传统OCR的精度太差了request.recognitionLevel .accurate//设置偏向语言不加的话会全按照英文和数字识别//中文一起能识别的其他文字只有英文//繁体中文为zh-Hant其他语言码请见https://www.loc.gov/standards/iso639-2/php/English_list.phprequest.recognitionLanguages [zh-Hans]do {//执行文本识别的请求try requestHandler.perform([request])} catch {print(Unable to perform the requests: \(error).)}})}//这个函数用来处理获取的文本func handleDetectedText(request: VNRequest?, error: Error?) {if let error error {print(ERROR: \(error))return}//results就是获取的结果guard let results request?.results, results.count 0 else {print(No text found)return}//通过循环将results的结果放到textStrings数组中//你可以在这里进行一些处理比如说创建一个数据结构来获取获取文本区域的位置和大小或者一些其他的功能。通过observation的属性就可以获取这些信息for result in results {if let observation result as? VNRecognizedTextObservation {//topCandidates(1)表示在候选结果里选择第一个最多有十个你也可以在这里进行一些处理for text in observation.topCandidates(1) {//将results的结果放到textStrings数组中let string text.stringtextStrings.append(string)}}}} }这时候运行就能看到结果了 可以看到除了最开始的“展开”符号被识别成v之外几乎没有识别错误。 macOS 接下来先介绍一下如何在 macOS 上实现这个功能。 首先新建一个空白文本文件ocr.swift然后输入以下内容 import SwiftUI import Vision import Foundationfunc handleDetectedText(request: VNRequest?, error: Error?) {if let error error {print(ERROR: \(error))return}guard let results request?.results, results.count 0 else {print(No text found)return}//通过循环将results的结果全部打印//你可以在这里进行一些处理比如说创建一个数据结构来获取获取文本区域的位置和大小或者一些其他的功能。通过observation的属性就可以获取这些信息for result in results {if let observation result as? VNRecognizedTextObservation {//topCandidates(1)表示在候选结果里选择第一个最多有十个你也可以在这里进行一些处理for text in observation.topCandidates(1) {//打印识别的文本字符串let string text.stringprint(string)}}} }func ocrImage(path: String) {let cgImage NSImage(byReferencingFile: path)?.ciImage()?.cgImage//创建一个新的图像请求处理器let requestHandler VNImageRequestHandler(cgImage: cgImage!)//创建一个新的识别文本请求let request VNRecognizeTextRequest(completionHandler: handleDetectedText)//使用accurate模式识别不推荐使用fast模式因为这是采用传统OCR的精度太差了request.recognitionLevel .accurate//设置偏向语言不加的话会全按照英文和数字识别//中文一起能识别的其他文字只有英文//繁体中文为zh-Hant其他语言码请见https://www.loc.gov/standards/iso639-2/php/English_list.phprequest.recognitionLanguages [zh-Hans]do {//执行文本识别的请求try requestHandler.perform([request])} catch {print(Unable to perform the requests: \(error).)} }extension NSImage {//NSImage转CIImagefunc ciImage() - CIImage? {guard let data self.tiffRepresentation,let bitmap NSBitmapImageRep(data: data) else {return nil}let ci CIImage(bitmapImageRep: bitmap)return ci} }//执行函数从命令行参数中获取图片的地址 ocrImage(path: CommandLine.arguments[1])然后编译 $ swiftc -o ocr ocr.swift运行就可以看到这样的结果 $ ./ocr ../info.png 通用 种类宗卷 创建时间1970年1月1日星期四 08:00 修改时间1980年1月1日星期二 00:00 格式EXFAT 容量511.88 GB 可用300.78GB 已使用211,106,529,280字节 磁盘上的 211.11 GB)你可能会发现开头的v不见了这是因为我使用的 macOS 是 12而不是最新的所以和 iOS 16 的结果不一样。 这个代码你还可以将其放到 Playground 中可以看到每一步的状况。 建议你尝试用这个命令识别一些其他的图像精度还是可以的。 识别对比和测试 上面是最理想的情况下测试接下来进行一些不同设置或情形的识别结果对比算是一种实验记录了。 新旧系统对比 macOS 12 对应的是 iOS 15。上文提到了macOS 12 和 iPadOS 16 的对比这里记录一下手写文本的识别情况。 对于上面这张图来说最新的 iPad OS 16 的结果为 很完美。 而 macOS 12 的结果为 $ ./ocr ../hand.jpeg 这王-个不焙的决注 请坚持做下去别放奔可以看到新系统虽然在文章开始的例子表现不是很好但有时还是很精准的。 多语言测试 介绍 Vision 的时候提到中文只能搭配着英文使用不能和其他语言套用那么套用了会如何呢 上图中是中文、英语、日语的“你好”如果是在 macOS 12无论是将识别语言设置成中文、日语或者不设置都无法将日语识别成日语假名而是将其识别成数字和英文字母或汉字。比如设置为ja或jpn $ ./ocr ../5.png 11$7 Hello Zh-sla但是在 iPadOS 16 上如果设置为ja或jpn那么三种语言都可以识别到因为日语中也有汉字所以这样其实不太对但是应付可以 但是如果设置为zh_Hans那么日语部分根本不显示 你可以用俄语ru也做一做测试可以感觉到中文是被单独拎出来做的不光不能搭配其他语言其他语言也不能搭配中文。 倾斜测试 我很好奇文本倾斜还能识别出来吗因为很多 CV 都是要找一个固定对象的比如识别猫先定位猫胡子水平的线。那么 Vision 面对旋转过的文本还能识别出来吗如果识别不出来临界值大概是什么角度呢 用下面这个图进行测试 测试结果发现在旋转 25 到 30 度的时候开始出现识别错误。当到达 45 度的时候基本上就不可用了。 这整个项目和后续更新我都放在 https://github.com/ZhongUncle/Swift-Vision-OCR.git希望能帮到有需要的人
http://www.hkea.cn/news/14389450/

相关文章:

  • 做旅游网站有前途吗国外产品代理网
  • 网站建设定制公众号小程序网站常用的js效果
  • 海口网站建设方案优化网站备案价格
  • 肃州区城乡和住房建设局网站友链交换网站源码
  • 中国做的手机系统下载网站二次开发wordpress
  • 在线服装设计网站wordpress屏蔽谷歌蜘蛛
  • 网站建设注意什么建设银行网站点不了
  • 仙桃网站建设广告设计公司需要什么资质和证书
  • 网站开发结构图河北网络建站
  • 外包做的网站 需要要源代码吗可以做闪图的网站
  • 光谷做网站推广费用公众号添加wordpress
  • 有了网站源码 怎么建设网站wordpress+引用+样式
  • 网站建设买了服务器后怎么做网络营销优化外包
  • 一个很好的个人网站开发公司名称大全两字霸气
  • 布吉网站建设技术托管优化的定义
  • 大连城市建设集团网站seo推广优化平台
  • 专业网站设计公司临沂百度联系方式
  • 国外网站 dns东莞南城做网站推广的公司
  • 网站建设 验收意见网络用户提要求找人帮忙做的网站
  • 著名网站设计师网站建设的七大优缺点
  • 做酒店网站设计浙江建设工程信息网站
  • 珠海企业网站制作费用城市门户网站建设
  • 范县网站建设电话wordpress js文件
  • 网站地图后台可以做吗wordpress 移动 seo
  • 桂林设计单位资质升级网站企业网站托管趋势
  • 花型图案设计网站辽宁朝阳哪家做网站好
  • 长沙网站微信开发安阳住房与城乡建设局官方网站
  • 临沂市住房和城乡建设厅网站极简风格装修效果图
  • 做一个国外的网站网站的原理
  • 四川通江县住房和建设局网站潍坊网络公司