画像処理

チコノフ(Tikhonov)の正則化

以下の本に載っていた事例 プログラミングのための線形代数 https://www.amazon.co.jp/dp/4274065782/ある画像をぼかし行列で変換したを、でもとに復元することを考える clear; close all; %N=225; %Nは奇数 X = im2double(rgb2gray(imread('lena.jpg'))); N…

OpencvのminArearectで回転角度の計算

pos.x,pos.yがminArearect()で得た4点から計算した重心の座標 marker.x,marker.yがマーカーの位置座標 マーカーは縦長の長方形の左上に置く仮定 angleはminArearect()で計算した角度 -90° let cx = pos.x let cy = pos.y let mx = marker.x let my = marker…

アダマール変換と基底

アダマール変換の定義 F(u,v) &= \frac{1}{n} \sum_{x=0}^{n-1}\sum_{y=0}^{n-1} f(x,y)\cdot (-1)^{q(x,y,u,v)} \\ q(x,y,u,v) &= \sum_{i=0}^{b-1}x_i g_i(u) + y_i g_i (v)\\ g_i(u) &= u_{b-i} + u_{b-i-1} ただしbはu(およびv)を2進数で表現したときに…

2次元DCT(離散コサイン変換)の基底

DCT-IIの定義式 ただし function show_dct_basis clear; close all; m = 8; N = m*m; function F=getBasisF(u,v) F = zeros(m,m); for y=0:m-1 for x=0:m-1 F(y+1,x+1) = sqrt(2/m) * calcC(u)*calcC(v) ... * cos(((2*x+1)*u*pi)/(2*m)) ... * cos(((2*y+1)…

輝度と色差 その2

function ycbcr_test close all; clear; %% lena im = imread('lena.jpg'); [X,Y,c] = size(im); Ys= zeros(X,Y); Cbs= zeros(X,Y); Crs = zeros(X,Y); for y=1:Y for x=1:X R = im(y,x,1); G = im(y,x,1); B = im(y,x,1); [Y,Cb,Cr] = RGB2YCbCR(R,G,B); Ys…

輝度と色差

function encoder close all; clear; %% initialization N = 256; im = zeros(N,N,3); im2 = zeros(N,N,3); Ys = zeros(N,N); Cbs = zeros(N,N); Crs = zeros(N,N); %% Main routine im = makeRGB(im); subplot(141); imshow(im); title("original RGB"); %i…

Y-Cb-CrをRGBとして表示するとどうなるか

緑が強い部分が白くなる function ycbcr_test close all; clear; %% lena im = imread('lena.jpg'); [X,Y,c] = size(im); im2 = zeros(X,Y,c); for y=1:Y for x=1:X R = im(y,x,1); G = im(y,x,1); B = im(y,x,1); [Y,Cb,Cr] = RGB2YCbCR(R,G,B); im2(y,x,1)…

OpenCVで外接矩形と回転角の算出

ここを参考に 画像処理入門講座 : OpenCVとPythonで始める画像処理 http://postd.cc/image-processing-101/ 回転を考慮した外接矩形 http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_contours/py_contour_featu…

ROSでサーボカメラ→HOG特徴とSVMによる物体検出

http://ishi.main.jp/ros/ros_obj_detection.html

Android StudioでOpenCV3を使おうとするとGL_TEXTURE_EXTERNAL_IOS not found的なエラーがでるとき

OpenCVをコンパイルするときのSDKバージョンを上げる (ダウンロードしてきた直後のbuild.gradleのデフォルト設定はSDKが低い)

mjpg-streamerのストリーミングをopencvで逐次処理する

opencvはHomebrewで入れる際にffmpgオプションをenableしておく あとcudaオプションも入れといた→cudaは自分のMBPで使えないから要らないmain.cpp #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, ch</iostream></opencv2/imgproc/imgproc.hpp></opencv2/highgui/highgui.hpp></opencv2/core/core.hpp>…

OpenCVでテンプレートマッチング

ここを参考に http://ishidate.my.coocan.jp/opencv_12/opencv_12.htmmain.cpp #include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; int main(int argc, char* argv[]){ Mat src_image = imread("host.png"); namedWindow("original"); imshow("original",s…</opencv2/imgproc/imgproc.hpp></opencv2/highgui/highgui.hpp></iostream>

mbedで画像処理

http://blog.goo.ne.jp/roboz80/e/83873ae871f2bf14e8130ee6c94eb2df http://blog.goo.ne.jp/roboz80/e/0a9652c89e7bf763dba6db1d556199caFPGAじゃなくてmbedだとFIFOがついてるモジュールを使わないといけないっぽい http://www.csun.co.jp/SHOP/2011102801…

AndroidのOpenCVでMatからbyte[]に変換する

http://answers.opencv.org/question/4761/mat-to-byte-array/

ホモグラフィー行列で台形ひずみを補正

http://mhr380.hatenablog.com/entry/2014/09/28/214457

OpenCVでパノラマ写真

http://goya813.hatenablog.com/entry/2014/11/30/180002

PCV1章のメモ

・ぼかし:ガウシアンカーネルの畳み込み ・微分フィルタ→エッジ(輪郭)検出:Sobelフィルタ or Prewittフィルタ ・物体カウント:モルフォロジー→物体分離 ・ノイズ除去(ROFアルゴリズム): denoise()関数

OpenCVのテスト

ここを参考に http://makers.hatenablog.com/entry/2014/01/05/172601 環境はMac OSX 10.9.3 Mavericks $ brew install opencvheader search pathに/usr/local/Cellar/opencv/2.4.8.2/includeを追加 library search pathに/usr/local/Cellar/opencv/2.4.8.2/…

OpenCVのMacでのMakefile

とりあえず動いたけど、こんな感じか。 参考:http://shin.hateblo.jp/entry/2013/07/19/211639 CXXFLAGS = \ -I/usr/local/include \ -I/usr/local/Cellar/opencv/2.4.8.2/include/opencv LDFLAGS = \ -L/usr/local/lib \ -L/usr/local/Cellar/opencv/2.4.8…

OpenCVでGUIを使うhighgui

main.cpp /*! \example example_4-1.cpp スクリーンにマウスで矩形を描画するサンプル \author Satofumi KAMIMURA $Id$ */ #include <highgui.h> #include <cv.h> namespace { const char* window_name = "Box Example"; CvRect box_; bool is_drawing_box_ = false; void dra</cv.h></highgui.h>…

OpenNI2のビルド(要OpenCV)

http://qiita.com/mountcedar/items/6d97efc0ea6c68c7674f main.cpp #include <OpenNI.h> #include <opencv2/opencv.hpp> #include <vector> int main() { try { openni::OpenNI::initialize(); openni::Device device; int ret = device.open( openni::ANY_DEVICE ); if ( ret != openni::STATUS_O</vector></opencv2/opencv.hpp></openni.h>…

バージョン2.4.3を指定してOpenCVをMountain lionにインストールする

ここを参考に。 http://ruirui.jp/blog/2013/03/homebrewopencv-243.html $ brew versions opencv 2.4.5 git checkout 586e8b2 /usr/local/Library/Taps/homebrew-science/opencv.rb 2.4.4a git checkout 3efa797 /usr/local/Library/Taps/homebrew-science/…