Python×医療事務(×トロント)

#医療 / #医療事務 / #IT / #トロント / #歯科助手 / #のんびり / #備忘録 / #趣味

タピオカはいくつ?のコードを練習

 

 

下記URLを参考に画像認識の練習をしてみた(コピペして貼って上手くいかないのを調べまくるだけ)

rightcode.co.jp

最初はopencvを pip install opencv のようなものを仮想環境のコマンドで実行するもできない

f:id:chocolate22554:20201130174446p:plain ⇛エラーとしてはcv2がありませんというものだった  よく見て  from cv2 import * のcv2を指していることがわかった ⇛Anacondaでopencvインストール試みる 下記エラーが出た f:id:chocolate22554:20201130173513p:plain ⇛原因:anaconda仮想環境 のpython verが3.8だからopencvは3.7かそれ以下じゃないと無理ってことだった

◎対策⇛仮想環境作り直した

次 whereなんてありませんけど と言われる

f:id:chocolate22554:20201130184132p:plain またタピオカの画像が連続で出てくる被害に見舞われる f:id:chocolate22554:20201130184253p:plain whereってなんだと思ったら簡単なことでwhereが未定義のためだった Pythonの「*** is not defined」とは何かを現役エンジニアが解説【初心者向け】 | TechAcademyマガジン 下のHSV を使ってみよう部分のコードを見たら

◎対策⇛from numpy import array, where, ones_like  が 「opencv」のほうでなかったためと判明 追加した

ブログ通り画像が出た f:id:chocolate22554:20201130184735p:plain

#■パス変更

#jupyter上で

import sys
sys.path.append('/Users/maeda/opt/anaconda3/envs/app1/lib/python3.7/site-packages')

#sys.pathはpythonライブラリをimportする先を設定しているみたいです(つまりライブラリへのpath)
#結局Anaconda仮想環境のpythonのバージョンを英語通り3.8→3.7に変えたら成功した





# コマンドプロンプトが動かなくなった時
#https://www.cse.kyoto-su.ac.jp/~oomoto/lecture/program/tips/trouble/hungup.html
#https://qiita.com/yut-nagase/items/27b0a17e9e3074a95c6c


from numpy import array, where, ones_like
from matplotlib import pyplot
## 画像を白黒で読み込む ##
img_bw = imread('tapioca_drink.jpg', 2) # ,2は白黒で読み込むという合図
 
## 一定の明るさ(この場合は120)より暗い部分のみ残してみる ##
img_mod = where(img_bw > 120 , 0, img_bw)
pyplot.imshow(img_mod)

HSV を使ってみよう は問題なくクリア

#HSV を使ってみよう
from cv2 import *
from numpy import array, where, ones_like
from matplotlib import pyplot


## カラーで読み込んだ画像をcvtColorを用いてhsvに変更 ##
img_cl = imread('tapioca_drink.jpg', 6)
img_hsv = cvtColor(img_cl, COLOR_BGR2HSV)

## 赤色の範囲を定義 ##
hsv_min = array([150,  64,   0])
hsv_max = array([180, 255, 255])

## 赤色をマスクする ##   
mask = inRange(img_hsv, hsv_min, hsv_max)
mask = bitwise_not(mask)
img_hsv = bitwise_and(img_hsv, img_hsv, mask = mask)

## 背景の黒い部分などを白くする ##
img_hsv[:, :, 2] = where(img_hsv[:, :, 2] < 10, 255 * ones_like(img_hsv[:, :, 2]), img_hsv[:, :, 2])

## HSVからBGRを経由して白黒に変更する ##
img_bgr = cvtColor(img_hsv, COLOR_HSV2BGR)
img_bw  = cvtColor(img_bgr, COLOR_BGR2GRAY)

## ごみを取るためのブラシ処理 ##
img_bw_b = blur(img_bw, (3, 3))

## 暗い部分のみ残してみる ##
img_bw_b = where(img_bw_b < 90, 255, 0)
pyplot.imshow(img_bw_b)

タピオカはいくつある?

次 ValueError: too many values to unpack (expected 2)  というエラーが出たf:id:chocolate22554:20201130191007p:plain

可変長引数の問題と思われるが自分が作りたいものにすごい近いパターンのものでないため一旦ここまで時間ある時にまた訂正&挑戦したいなと思います

#■パス変更

#jupyter上で

import sys
sys.path.append('/Users/maeda/opt/anaconda3/envs/app1/lib/python3.7/site-packages')

#sys.pathはpythonライブラリをimportする先を設定しているみたいです(つまりライブラリへのpath)
#結局Anaconda仮想環境のpythonのバージョンを英語通り3.8→3.7に変えたら成功した





# コマンドプロンプトが動かなくなった時
#https://www.cse.kyoto-su.ac.jp/~oomoto/lecture/program/tips/trouble/hungup.html
#https://qiita.com/yut-nagase/items/27b0a17e9e3074a95c6c


from numpy import array, where, ones_like
from matplotlib import pyplot
## 画像を白黒で読み込む ##
img_bw = imread('tapioca_drink.jpg', 2) # ,2は白黒で読み込むという合図
 
## 一定の明るさ(この場合は120)より暗い部分のみ残してみる ##
img_mod = where(img_bw > 120 , 0, img_bw)
pyplot.imshow(img_mod)