hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

2020-05-01から1ヶ月間の記事一覧

画像の角を表示する

◉角(コーナー)を使う 濃度の違いから「角のような」位置を見つけ「特徴点」とする方法。 ここでいう、角とは、大まかにいうと、 「縦と横が交わる所で、周りよりも明るい部分、または濃い部分がある所」。 コンピュータがこの角を見つけることで、 比較する…

キャニー

◉キャニーとは? エッジを見つける方法の1つ。 エッジを美しく見つけるのが特徴だが、 見つける時間が長くなる。 キャニーはソーベルの結果を使うことで、 エッジを美しく浮き上がらせることができる。 ◉キャニーの大まかな流れ ①元画像からノイズを除去 ②…

ソーベル

◉ソーベル 画像からエッジを表示する方法の1つ。 ラプラシアンのように全体の形を見つけるエッジではなく、 縦または横方向に特化したエッジを浮き出す。 形や大きさが決まった物体の縦(高さ)や横(幅)の距離などを見つける場合に 利用される。 ◉ソーベ…

ラプラシアン

◉画像の輪郭とは? 画像には明るい部分と、濃い部分がある。 急激に濃度を変化した部分を拾って線で表すと、 対象に大まかな形が見える。 これが輪郭、または輪郭線である。 また、輪郭を「エッジ」と呼ぶ。 ◉エッジを使う理由 画像検出では、画像の中にどの…

2値化

◉2値化とは? 画像には、暗い部分から明るい部分まであるが、 最も暗い部分を「0」、 最も明るい部分を「255」だとすると、 0〜255までの数字で様々な明るさを表現することができる。 この方法はグレースケールで、 今回は白と黒だけの2種類状態に…

グレースケールで表示する

◉グレースケールを使う理由 グレースケールは、カラー画像から色の情報(RGB)を捨て、 明るさの度合いだけで表現する。 画像から特徴を見つける場合、 ポイントとなる境界や輪郭は、色情報よりも明るさの違いの方が コンピュータにとっては判断が簡単。 ま…

画像を検出する方法

◉画像検出で何ができる?? 画像検出は大きく分けると3つのことができる。 ●特定部分の領域を見つける (EX:顔が写っている) ●一致するかどうかを見分ける (EX:指紋の一致) ●グループに分ける (EX:猫と犬を分ける) 最近では、次のような使われ方もして…

画像にモザイクをかける

◉モザイクをかける仕組み。 画像にモザイクをかけるには、元の画像を一度「縮小」する。 そして、縮小した画像を「拡大」する。 拡大するときに、デジタル画像はできるだけ美しくしようと「補間」という 仕事をするが、ここで、補間されてしまうと元の画像に…

画像の色反転(ネガポジ)

画像の色を反転させることを フィルムカメラのフィルムネガを直接見たようになるので、 ネガポジという。 ◉色反転させる理由。 画像から特徴パターンを見つける際に、 色を反転させることで、「歪み」や「ノイズ」を取り除き 判別しにくかった部分を見やすく…

画像を回転させる

◉回転させる理由 画像検出を行う際、特定箇所を見つけるためには、 前もって様々なパターンを知っておく必要が出てくる。 パターンの中には上下が逆になっていたり、少し斜めになっていたりする状態でも 検出できる必要がある。 そのような、バリエーション…

画像の大きさを変化させる

◉なぜ大きさを変化させるのか?? 画像が大きすぎると、必要な情報を探すのに時間がかかる。 必要な情報を探しやすくするため、 見つける範囲や時間を少なくできる。 ◉変化させる方法 cv2.resize(画像, 拡大・縮小した時の大きさ) ⚫︎画像:大きさを変化させ…

画像の上に文字を書く

◉ 文字を重ねて書く理由 顔検出を行う時、顔が見つからない時がある。 そういった場合、検出対象とした画像の上に、結果のメッセージを表示すると 検出できたかどうかなど、画像を見るだけでは判断できないことも わかりやすく伝えることができる。 ◉ 文字を…

画像の中心??

画像を扱うと、中心点(中心座標)を求めることがある。 ◉ 中心を求める方法 画像の縦サイズと横サイズの1/2し、 その交差したポイントが中心座標。 <画像ファイルを表示するPythonコード例> import cv 2 try: img = cv2.imread( ' girl01.jpg ' ) if img …

画像の上に円と四角を描く

◉ 画像の上に円や四角を重ねる理由 顔検出をした結果、顔の部分に、「ここですよ」と示すため。 ◉ 画像に円や四角を重ねて表示する方法 使う指令は3つ ● cv2.imread →画像ファイルを読み込む ● cv2.circle →円をキャンパスに描く ● cv2.rectangle →四角をキ…

画像を表示する

◉ 画像を表示する理由 目標は「顔検出」なので、顔が写っている画像を表示しなければならない。 ◉ 表示方法 cv2.imread(画像ファイル名) ⚫︎画像ファイル名:表示したい画像ファイルの場所と名前を指定 <画像ファイルを表示するPythonコード例> import cv2 …

四角を描く

◉なぜ四角を描くのか? 画像検出の際に、「目」や「顔」を見つけ出し、「ここですよ」と示す記号として 四角を利用するから。 ◉四角を描く方法 cv2.rectangle(四角を描く画像, 左上座標, 右下座標, 色, 太さ, 種類) ⚫︎四角を描く画像:円同様に作ったキャン…

円を描く

OpneCVの基本機能の1つである円の描画で円を描いてみる。 ◉なぜ円を描くのか? 画像検出の際に、「ここが検出場所ですよ」と示す記号として 円を利用するから。 ◉モジュールを使う import cv2 # OpenCVの機能を使う import numpy #円を描くためのキャンパス…

画像における拡張子

画像も数字だからコンピュータで扱えるのだが、 1マス単位の数字情報が集まってできていて、 その情報の集め方によって違いがある。 ◉ JEPG (ジェイペグ) :「.jpg」「.jpeg」 Joint Photographic Experts Group の略。 非可逆圧縮形式で保存。 デジカメで撮…

Open CV って?

画像処理には大変複雑な計算や多様な処理が必要。 だが、こういった難しそうなことを簡単に引き受けてくれるのが OpenCVである。 ◉ Open CV Open Source Computer Vision Library の略。 OpenCVは、CPUで有名なインテルが開発した、 「画像処理」「画像解析…

画像検出に欠かせない機能追加

AIの代表的な機能「画像検出」プログラムを作るために、必要な機能を追加する。 ◉ STEP1 Anaconda Navigator を起動し、左にある「Enviroments」をクリックし、 その中から、「study AI」を選ぶ。 ◉ STEP2 study AI の▶︎をクリック。 「Open Terminal」を選…

import sys

プログラムを動かすとき、最初に使いたい情報を渡すことができる。 ◉ 情報を渡す?? ほとんどの場合、プログラムを動かすためには、必要な情報は 「プログラムの中(内側)」へ入力する。 しかし、場合によっては、「プログラムの外側」から情報を提供しな…

外部モジュールで使い回す

他のプログラムでも使えそうな機能は、簡単に何度でも使いまわしたい。 そこで、「モジュール」という再利用可能な機能の集まりを作成する。 ◉モジュールとは。 便利に何度でも使い回せる機能の塊をいう。 目的に合わせた機能を1つのファイルにすることで、…

エラーの対処

◉ どんなときにエラーが起こる? プログラムを作っているときにはわからないが、 実際に動かしたときの状況によっては、エラーが起こる可能性がある。 予期しないエラーに対処する方法を記述することで、対処を行う。 ◉ 例外対処 予期しないエラーに対処する…

繰り返し処理

◉ 繰り返しを使う方法 繰り返しには,「 while 」と「 for 」がある。 この後も使う「 for 」について。 for 変数 in 繰り返す情報 : 繰り返す処理 ※条件分岐と同様に、改行後、半角空白4つが必要!! EX.) lunches = [ 'ステーキ', 'パスタ', '寿司'] for t…

リストの似てるタプル

◉ 変更できないまとまり 情報をまとめて扱える機能には「リスト」があるが、 リストは途中で内容を変更できてしまう。 そこで、情報をまとめて扱いながら、変更できない機能「tuple(タプル)」を使う。 ◉ タプル の作り方 タプル名 = ( 情報1, 情報2, 情報…

ドメイン名の取得

◉ ドメイン名 インターネット上のコンピュータを識別する住所のようなもので、 URLやメールアドレスに含まれている(赤字部分)。 URL http://www.examle.com Mail mail@example.com 自分が希望するドメインを持つには、 独自ドメインを取得する必要があり、…

リストの作成

◉ リストの必要性 バラバラでも構わないが、複数の情報はまとめて扱うことのできる、リストを用いることで、 まとめられた情報は順番に管理されているので、 「○番目の情報が欲しい」と問い合わせるだけで、簡単に使うことができる。 ◉ リストの作り方 リス…

条件分岐

条件分岐をすることで、適切な次の処理へ振り分けることができる。 ◉ 条件分岐の指定命令 ● Case1 「もし、条件式1が正しければ処理1を動かす」 if 条件式1: 処理1 ● Case2 「もし、条件式1ではなく、条件式2に一致しているなら処理2を動かす」 if 条…

組み込み関数

◉ 組み込みとは? よく利用するプログラムを呼び出すだけで、だれでも使えるようにした、 Python の中で最初から用意されている部品。 ◉ 関数とは? プログラムでの難しいことも簡単にできるようにした魔法の部品。 魔法が叶えたいことによって呼び出すもの…

変数の内容を埋め込む

◉ 変数の内容を埋め込む表示方法 print ( f '{ 値 }' ) EX.) MY_HEIGHT =1.7 my_weight = 70 my_bmi = my_weight / ( MY_HEIGHT * MY_HEIGHT) print ( f ' 体重は { my_weight } kg 、身長は { MY_HEIGHT } m ') print ( f ' 計算したBMI 値は { my_bmi } で…