SwiftでOpenCVを使用するためにOpenCVのFrameworkをbuild

OepnCVをSwiftから使用するにはObjective-cのラッパーを作成する必要があり2度手間で面倒くさい。
以下のサイトにSwiftから直接呼ぶ方法が記載されていたので確認しながら試してみる。
OpenCV が Objective-C / Swift で使えるようになります & 使ってみた

Xcodeを起動して「preferences」の画面を開きCommand Line Toolsが未選択ならば選択する。

未設定

設定済み

Swift、Python、cmake、Xcodeのtoolのバージョンを確認

[code]
swift –version
Apple Swift version 5.3 (swiftlang-1200.0.29.2 clang-1200.0.30.1)
Target: x86_64-apple-darwin19.6.0
cmake –version
zsh: command not found: cmake
python –version
Python 2.7.16
xcode-select –version
xcode-select version 2373.
[/code]

cmakeがインストールされていないため、いったんbrewをインストール

Homebrewのサイトに記載されているコマンドを実行してHomebrewをインストール

[code]
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
[/code]

brewのインストールが完了したらcmakeのインストール

[code]
brew install cmake
[/code]

インストールが完了したらバージョンを確認

[code]
cmake –version
cmake version 3.18.2
[/code]

githubよりopencvのリポジトリをclone

[code]
cd Documents/prjs/opencv/git
git clone https://github.com/opencv/opencv.git
[/code]

opencvのbuild先となる作業用フォルダを作成

[code]
mkdir work
cd work
[/code]

opencv/platforms/ios/build_framework.pyスクリプトを実行

[code]
/Users/hideo/Documents/prjs/opencv/git2/opencv/platforms/ios/build_framework.py ios
[/code]

buildが正しく終了したらworkフォルダ直下のiosフォルダに以下のフォルダが作成される

[code]
build
opencv2.framework
samples
[/code]

opencv2.frameworkが使用するopencvのframework

久しぶりのToDoList

環境の変化に伴い久しぶりにToDoListを使ってみる

URL

https://www.abstractspoon.com/

swift バックグラウンドで音声を再生できない

いろいろなサイトでできると記載があるが、どうも再生できない!
Objective-cではできたのでだけど?
そんなことがあるのか?
iOS13
xcode11

参考サイト

Swift バックグラウンドで自動ロック(スリープ)状態になっても、mp3を再生し続ける方法

[Swift4] バックグラウンドでオーディオ再生する

[iPhone] AVAudioplayer 音楽の再生

iPhoneのViewの座標が違う

iPhoneX未満の機種ではViewのY座標は64。

※緑がView

iPhoneX、11ではViewのY座標は88

64では頭が切れる

88で丁度よい

classのファイルパスを求める

C:\OSGeo4W\apps\Python37\libにあるパッケージ「tdkaoku」内のモジュール「kaoku_core」にあるMasterprojectクラスのフルパスを求める

[code]
from tdkaoku.kaoku_core import(
Masterproject
)

import inspect

print(inspect.getfile(Masterproject))
[/code]

以下が出力される

[code]
C:\\OSGeo4W\\apps\\Python37\\lib\\tdkaoku\\kaoku_core.py
[/code]

blogサイトをSSLに対応

blogサイトをさくらのVPSに移動したので、ついでに無料のSSL証明書を導入!

参考いしたサイトネコでもわかる

CentOSにソースからインストールしたApacheをアンインストール

CENTOS:CentOS release 6.6
Apache:2.2.22

Apacheのインストールに使用したソースフォルダ内(例:/var/download/httpd-2.2.22)のconfig.niceファイルを参照してconfigure実行時の引数を確認

[code]
"./configure" \
"–enable-so" \
"–enable-module=all" \
"–enable-mods-shared=all" \
[/code]

インストール先は未指定なので/usr/local/apache2にインストールされてるのでapache2フォルダを削除

CentOSにソースからインストールしたPHPをアンインストール

CENTOSのバージョン:CentOS release 6.6
PHPバージョン:5.3.14

インストール時にconfigure、make、make installを実行したPHPのソースフォルダ(※)より情報を収集

※例/var/download/php-5.3.14

config.statusにはconfigureのコマンドが記載されている

[code]
# ./configure -disable-debug -with-apxs2=/usr/local/apache2/bin/apxs -with-iconv -enable-mbstring -enable-zend-multibyte -with-mysql -enable-soap –with-zlib-dir –with-pdo-mysql –with-mysqli –enable-zip –with-gd –with-jpeg-dir=usr/local/lib –with-libdir=lib64 –with-curl –enable-ftp
[/code]

インストール先のフォルダは引数prefixで指定するが、configureでは指定していないのでデフォルトの/usr/localにインストールされた

以下のファイル、フォルダを削除すればPHPは削除される

/usr/local/bin/php
/usr/local/bin/php-config
/usr/local/bin/phpize
/usr/local/lib/php
/usr/local/lib/php.ini
/usr/local/lib/php

gitコマンドで変更内容確認

git diff

比較対象

作業ディレクトリのファイルとローカルリポジトリ

表示

変更内容が全て表示されるので決して見やすくない

 

git diff –name-only

比較対象

作業ディレクトリのファイルとローカルリポジトリ

表示

更新されたファイル名の一覧表示

 

git diff ファイルパス

比較対象

作業ディレクトリのファイルとローカルリポジトリ

表示

ファイルの比較

 

Pythonで相関行列、偏相関行列を求める

相関行列、偏相関行列の計算(答え合わせ)は通常Rを使うが、今回はPythonでやってみる。

目的変数と説明変数

弊社アプリの結果画面

単相関

偏相関

PythonはQGISのPythonコンソール上で実行

実行するスクリプト

[code]

import numpy as np
import scipy as sp
from scipy import linalg

def partialcorrcoef(c):
inv_cor = linalg.inv(c)
rows = inv_cor.shape[0]
regu_1 = 1 / sp.sqrt(sp.diag(inv_cor))
regu_2 = sp.repeat(regu_1, rows).reshape(rows, rows)
regu_1 = 1 / sp.sqrt(sp.diag(inv_cor))
regu_2 = sp.repeat(regu_1, rows).reshape(rows, rows)
pcor = (-inv_cor) * regu_1 * regu_2
sp.fill_diagonal(pcor, 1)
return pcor

data=[
[520000,498000,447000,451000,608000],
[160,120,250,105,175],
[284,162,169,163,261],
[400,600,600,600,600]
]

C = np.corrcoef(data)

PC = partialcorrcoef(C)

[/code]

スクリプトを実行した後に相関行列(C)、偏相関行列(PC}を表示

計算結果は一致したのでアプリには問題はなし