asp.net core에서 서비스 만들었기 때문에 선전 겸 기술 공개 -2_7. 분할 처리 Google Vision API-
선반 이미지를 분할하는 방법 (Qiita 설명 용)
Qiita에서 이것을 전부 설명한 곳에서 필요도 없기 때문에, 긁어 뽑고의 설명이 됩니다!
1. 책의 문자 부분을 마우스로 선택
2.Enter로 책 이미지 보내기
-여기에서 비동기-
3. 이미지 분할
4.OCR 처리
5. 취득한 문자를 본 검색
- 여기까지 비동기 -
6. 화면에 결과 표시
이번은 「4.OCR 처리」입니다.
그리고 기다리지 않는 Google Vision API의 차례입니다.
참고 사이트
참고로 한 것은 완전히이 사이트입니다.
C#에서 Google Cloud Vision API를 사용하여 간단한 OCR 애플리케이션 만들기
htps : // 이 m / 냐가와 _00 / ms / 4, 764260, c76, 8504 cf4
부족 부분은, 공식 사이트의 메뉴얼을 의지해 실장했습니다.
인증에서 샘플까지.
h tps : // c ぉ d. 오, ぇ. 코 m / 드 cs / 맞아 ㅇ 치카 치온 / p 로즈 c 치 온? hl = 그럼
플러그인 준비
플러그인 'Google.Apis.Vision.v1'을 설치합니다.
환경 변수 설정
이 엔은 대략 설명이 되기 때문에, 넘어진 사람은 코멘트에서도 받을 수 있으면 별도 설명합시다.
1. 공식 매뉴얼대로, GoogleVisionAPI로 취득한 인증 키 파일명을 환경 변수에 세트 합니다.
환경 변수는 파일 이름을 지정합니다. (아마)
2. 인증 키 파일을 프로젝트 바로 아래에 놓습니다.
3. 인증 키 파일의 내용
당연히 보이지 않습니다! 하지만, 어떤 느낌인지만. . .
만약을 위해, 이 후 이 json 파일을 재작성했습니다.
Git에서 샘플 얻기
참고 사이트 그대로를 유용하고 있습니다.
takashi-miyahara/SimpleOCRApp_for_GoogleCloudVisionAPI:
htps : // 기주 b. 코 m / 타카시 미야하라 / 시 mp ぇ 오 C p p fu r _ Go g C p_후오r_오오gぇCぉうゔぃ시오나피/하고 xt에서 c와 r. cs
이 클래스를 조금 바꿔서 Models/GoogleVision 폴더에 배치합니다.
WorkController에 구현
나머지는 간단합니다.
잘라낸 부분을 OCR에 걸어 봅시다.
취득한 캐릭터 라인을, 화면상의 Popup 표시합니다. (쉽기 때문에.)
Controllers\WorkController.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Drawing;
using Amazon;
using Amazon.S3;
using Amazon.S3.Transfer;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using sample2_1.Models;
using sample2_1.Models.Const;
using sample2_1.Models.Interface;
using sample2_1.Models.GoogleVision;
namespace sample2_1.Controllers
{
public class WorkController : Controller
{
// AmazonS3 インターフェイス
private static IAmazonS3 client;
public IActionResult Index()
{
-略- }
}
[HttpPost("UploadFiles")]
public async Task<IActionResult> FileUpload(List<IFormFile> files)
{
-略-
}
// S3 ストレージへアップロード!
static async Task WritingAnObjectAsync(string s_upd_file_nm)
{
-略-
}
//asp.net coreでサービス作ったから宣伝兼ねて技術公開する -2_6.分割画面→Canvasオブジェクト- 追加
public IActionResult Canvas()
{
-略-
}
[HttpPost]
//FormからJsonを受け取り、クラス変換してくれます。
public string Cut([FromBody]CutData cutData)
{
// 1.Imageへ画面に表示している画像ファイルを読み込み
System.Drawing.Image image = null;
try
{
image = System.Drawing.Image.FromFile(@"C:\work\work.jpg");
}
catch (Exception e)
{
throw e;
}
// 2.Bitmapに範囲指定したサイズを設定
Bitmap destbmp = new Bitmap((int)cutData.width, (int)cutData.height);
// 3.Graphicsに読み込ませるBitmapを設定
Graphics graphics = Graphics.FromImage(destbmp);
// 4.[1]でロードした画像を描画
graphics.DrawImage(image, (cutData.x * -1) , (cutData.y * -1), image.Size.Width, image.Size.Height);
// 5.保存先の指定
var stream = new FileStream(@"C:\work\cutter.jpg", FileMode.Create);
// 6.保存処理
destbmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
// 7.後処理
stream.Close();
// 8.Google Vision API 認証準備
GCPVisonAPI ocr = new GCPVisonAPI();
// 9.戻り値stringの変数作成、画像をByteArrayで開く
string getText = "";
byte[] imageArray = System.IO.File.ReadAllBytes(@"C:\work\cutter.jpg");
// 10.Google Vision APIの実行
ocr.getTextAndRoi(imageArray, ref getText);
// 受けとった文字列を返却
return getText;
// 受け取ったheightプロパティを画面に返す。
//return @"正常にCut出来ました!";
}
}
}
디버그 실행
그럼 시도해 보자!
1회째:
목표는 "최신 일본의 지진지도"
결과
「최신 일본의 지진지도」
↓
「최신 일본 지진지도」
좋아요.
작은 「의」는 색도 다르기 때문에 인식하고 있지 않습니다만. . .
2회째:
목적은, 2권 동시 「실천!비즈니스 수학 Lite」 「생명과 환경의 화학」
결과
"생명과 환경의 화학""실천! 비즈니스 수학 Lite"
↓
"생명과 환경의 화학""실천! 비즈니스 수학""
굉장히 꽤 정밀합니다.
Lite가 "괄호 닫기"로 인식되지만 허용 범위.
이것만으로 약간의 서비스가 될 것 같은 생각이 들었습니다.
TanaToru에 메뉴 추가하여 선택 이미지의 OCR 서비스를 만들어도 재미있을지도.
Google Vision API 반환 값 정보
반환값에는 다양한 정보가 담겨져 있습니다.
자세한 내용을 보려면 Git에서 얻은 샘플 .Execute() 때 서버와 통신합니다.
responses.Responses를 워치로 보면 여러가지 볼 수 있습니다.
검색할 수 있는 모든 텍스트:
FullTextAnnotation.Text
획득할 수 있는 모든 텍스트의 좌표 정보:
TextAnnotations[0].BoundingPoly.Vertices[0~3]
검색할 수 있는 단어 텍스트:
TextAnnotations[1~x].Description
검색할 수 있는 단어 텍스트의 좌표 정보:
TextAnnotations[1~x].BoundingPoly.Vertices[0~3]
기본적으로는, 문자의 취득 정도 밖에 하지 않겠지만, 문자의 좌표를 사용해 무엇인가 하고 싶은 경우, 사용할 수 있을지도.
TanaToru에서도 사용할 예정입니다.
【부디 시험해 주세요】※완전 무료입니다
TanaToru -책장 관리 서비스-
htps : // 어 p. 제로-오네-sys m. 이. jp/타나토루/
Reference
이 문제에 관하여(asp.net core에서 서비스 만들었기 때문에 선전 겸 기술 공개 -2_7. 분할 처리 Google Vision API-), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ArataKinjo/items/1384addf2f8934ae27e6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)