画像解析

pythonでの画像データお互い変換

目次 画像データロード – IPythonで画像データを表示 OpenCV – cv型データを読み込み – cv型データを表示 – Matplotlibでcv型データを表示 – cv型データ→pil型の変換 – cv型データ→sk型の変換 Pillow – pil型データを読み込み – pil型データを表示 – io.BytesIOでpil型データを表示 – Matplotlibでpil型データを表示 – pil型データ→cv型の変換 skimage – sk型データを読み込み – sk型データを表示 – Matplotlibでsk型データを表示 – sk型データ→cv型の変換 – sk型データ→pil型の変換 Matplotlib – Matplotlib型データを読み込み – Matplotlib型データを表示 PythonはOpencv、Pillow、 scikit-image、Matplotlibなどの複数便利なライブラリがあります。各ライブラリはデータ型が違います。今回の記事は画像データお互い変換をまとめたいと思います。それぞれのライブラリで特徴があります。 実験の環境は google colabです。 画像データロード # 画像をロード import urllib import urllib.request img_src = “https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Origami_cranes_on_match_heads.jpg/320px-Origami_cranes_on_match_heads.jpg” img_file = ‘image.jpg’ urllib.request.urlretrieve(img_src, img_file) (‘image.jpg’, …

pythonでの画像データお互い変換 Read More »

Pythonでの魚眼フィルター

目次 1. 魚眼フィルター 2. 実験: _2.1 画像の読み込む _2.2 魚眼フィルターの関数 _2.3 結果   1. 魚眼フィルター(fisheye) 魚眼フィルターとは、魚眼レンズを通して見たかのように、イメージを歪めます。結果は、樽型歪曲という、超広角の歪みのエフェクトになります。下記のような画像の加工になります。 2. 実験: 環境: google colab 入力データ:ウィキメディアの画像データ モデル:魚眼フィルターの関数 Gil-Mor/iFish   Imageioのライブラリをインストールします。 !pip3 install numpy imageio   ライブラリをインポートします。 # 画像をロード import urllib import urllib.request import sys import fish import imutils from IPython.display import Image   fishのモジュールをインストールします。 #  Import scripts sys.path.append(”) py_src = “https://raw.githubusercontent.com/Gil-Mor/iFish/master/fish.py” py_file = ‘fish.py’ urllib.request.urlretrieve(py_src, py_file) import fish   2.1 画像の読み込む # 画像をロード img_src = “https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/Chess_board_blank.svg/472px-Chess_board_blank.svg.png” …

Pythonでの魚眼フィルター Read More »

pythonでQRコード画像生成・読み取り(PyQRCode・pyzbar)

  目次 1. QRコードの概要 2. PyQRCode 3. 実験のコード _3.1 環境準備 _3.2 QRコードの生成(Encode) _3.3 QRコード画像の読み取り(Decode) _3.5 QRコード動画の読み取り(Decode)   1. QRコードの概要 どこにでもあるQRコードはpythonでどう生成しますか?この記事はこの質問に回答します。 QRコードの生成と読み取るPythonは複数のパッケージがあります。今回はPyQRCode・pyzbarを解説します。   2. PyQRCode PyQRCodeのパッケージはQRコード作成、エラー修正、QRコードのバージョン、Encodeのモードなどを設定することができます。 pyqrcode.create(content, error=’H’, version=None, mode=None, encoding=None) content(コンテンツ): QRコード error(エラー): ・‘L’ コードの7%を修正できる。 ・‘M’ コードの15%を修正できる「M」。 ・‘Q’一般)コードの25%を訂正できます。 ・‘H’ コードの30%を修正できる。 version(バージョン): ・バージョンは1から40まで設定ができます。バージョン1が最小のQRコードで、バージョン40が最大です。 mode(モード): ・整数をエンコードするために使用される「数値」。 ・一部のASCII文字をエンコードするために使用される「英数字」。 ・「漢字」モードは日本語の文字に使用できますが、shift-jis文字列エンコードで理解できる文字のみです。 ・バイトをQRコードに直接エンコードする「バイナリ」モード   3. 実験のコード 環境:Google Colab Pythonパッケージ:PyQRCode, pypng, pybar …

pythonでQRコード画像生成・読み取り(PyQRCode・pyzbar) Read More »

Object Detection (英)

In computer vision, object detection is one of the tasks that AI shows remarkable result. Each object detection task has different models and creates different level of output. This is my wrap-up of object detection tasks. Image Classification Image Classification detects class from overall image input and returns class with probability. classes = [“dog”, “cat”, …

Object Detection (英) Read More »

OpenCVのWatershedで画像の領域分割

  目次 1. Watershed画像分割とは 2. OpenCVのWatershed 3. 実験 _3.1 データロード _3.2 画像加工 _3.3 輪郭検(findContours) _3.4 画像分割(watershed) 前回の記事は「OpenCV-Pythonでの図形検出、図形数える」を説明しました。Contoursのモジュールは、領域輪郭の図形検出ができますが、画像の領域分割はできません。画像分割の場合は、OpenCVのWatershedアルゴリズムを利用します。Watershedアルゴリズムとは、くっついているものを分離する事もできる古典的領域分割アルゴリズムです。日本語だと分水嶺アルゴリズムと言われています。画像の輝度勾配を山嶺とみなし、山の高い(= 輝度値の高い)位置から流れ込む水の作る領域をひとつの領域とする分割を行います。そのため輝度がはっきりと異なる場合は、弱いアルゴリズムです。 1. Watershed画像分割とは Watershedは、得られた画像を意味のある領域に分割する事は重要な技術です。Watershedアルゴリズムは画像ピラミッドによる画像のセグメント化・平均値シフト法による画像のセグメント化します。 2. OpenCVのWatershed cv.watershed(image, markers) image : 入力画像 markers:  画像のマーカー(画像と同じサイズ) https://docs.opencv.org/master/d7/d1b/group__imgproc__misc.html#ga3267243e4d3f95165d55a618c65ac6e1 3. 実験 環境:Google Colab データセット:硬貨の画像 ライブラリ:OpenCV 分析:画像分割(watershed) 3.1 データロード ライブラリインポート import cv2 import numpy as np import imutils from IPython.display import Image 画像のファイルを表示します。 img_file = “coin02.png” Image(img_file) 3.2 画像加工 pyrMeanShiftFilteringで同様の色分布で色を中和します。 image = cv2.imread(img_file) shifted = cv2.pyrMeanShiftFiltering(image, 21, 51) …

OpenCVのWatershedで画像の領域分割 Read More »