

タイトルがわかりづらくすみません

# 知りたいこと

下記リンク先にある、くら寿司のメニュー画像から  
<http://www.kura-corpo.co.jp/menu-cp/img/menu-index-pc-01.jpg>

・各商品(まぐろ | サーモン | いくら...)ごとに  
・文字列(まぐろ | 100円 | 提供エリア:全店舗 | 持ち帰り:可)  
・画像(商品ごとの寿司の画像)  
を生成するなら、  
・ **どういったライブラリ** を使って、  
・ **どう認識したり、どう切り抜いたり**  
すると楽に実装できそうか、教えてほしいです。

[![各商品ごとに切り抜いたイメージ](https://i.stack.imgur.com/R0Ljl.jpg)](https://i.stack.imgur.com/R0Ljl.jpg)

# これを作ろうと思ったきっかけ

家族で寿司を注文するときに、  
誰が何を何個頼む を 紙にメモしたりするのが面倒であるために、  
楽に集計できるシステムを作りたいと思ったからです。

# 動作イメージ

**1日ごと** に、Pythonスクリプトを実行すると、リンク先画像から、  
・画像認識(?)  
・文字起こし(?)  
・パース,整形  
して、以下のようなテーブルに  
・INSERT, UPDATE  
するようなものを想像しています。

[code]

    +----+-------------+-------+------+------------------+
    | id | name        | price | erea | jpg_path         |
    +----+-------------+-------+------+------------------+
    |  1 | maguro      |   108 |  all | hoge/maguro.jpg  |
    |  2 | salmon      |   108 |  all | hoge/salmon.jpg  |
    |  3 |  ikura      |   108 |  all |  hoge/ikura.jpg  |
    |  4 |  new_sushiA |   108 |  all |            null  |
    ...
    
[/code]

# 最終的には

Pythonスクリプトでテーブルが毎日更新される  
(新商品があればレコードを追加し、  
もとの商品は特に更新しない)ので、  
それをもとに、htmlを生成し、  
商品をタップするとカウントが1増えたりする(Javascript?)  
ようなWebサイトを作りたいです

# なぜ修羅の道を進もうとするのか

うちの近くにあるのが **くら寿司だけ** だからです

普通、商品ごとにhtmlの要素が分かれていて、  
beautifulsoup4みたいなのを使って、パースして、  
文字列やら画像やら収集すると思いますが、  
くら寿司はそうではなかったので、やってみようと思いました。

## 調べてみたこと

## 聞いてみたいと思ったこと

OpenCVで人の顔を検出するだとか、  
輪郭を検出するような方法はあったのですが、

OpenCVでは、今回のような  
文字列を認識したり、  
商品ごとの画像を切り抜いたり  
・するのには向いているのか  
・他によいライブラリはないのか

例えば、  
白背景と茶色背景でくっきり色が分かれているから、  
・以外と簡単に認識できる方法があるよとか、  
・画像編集ソフトで切りぬけばすぐだよとか、

画像認識のことは忘れて、  
一定の長さごとにぶつ切りにした方がいいとか

画像からは文字起こしすればいいよとか

そういった意見をお聞きしたいです。  
初質問ですが、よろしくお願いします。


CC BY-SA 4.0
2020-04-25T17:13:27.090
65963
2020-04-25T17:45:05.253
2020-06-17T08:14:45.997
-1
37120
question
python python3 opencv
Pythonを使って、リンク先のメニュー画像から、商品ごとの画像と文字列を生成するにはどうすればいいか


やや質問の範囲が広いように感じますが、ひとまず "考え方の方針" を回答してみたいと思います。

メニューの画像をよく見れば、個々の商品ごとに文字の位置は決まっているようなので、OCRを使う場合でも切り分けてしまえば良さそうです。

下記サイトではOCRエンジンの「Tesseract」、これを扱うPythonモジュールの「PyOCR」を使ったOCRの方法が紹介されています。認識の精度を高めるために画像の一部を切り抜く方法も言及されているので、これらを応用すればやりたいことは実現できそうな気がします。

[PythonでOCRを実行する方法](https://gammasoft.jp/blog/ocr-by-python/)


CC BY-SA 4.0
2020-04-25T17:45:05.253
65964
2020-04-25T17:45:05.253
3060
65963
answer