OpenCV
cv2.Blur関数を使って画像をぼかしたいのですが、四角形ではなく円もしくは楕円形状でぼかしたいという状況です。 これはマスクを利用して実現可能なことが分かったのでメモします。 import cv2 import numpy as np def apply_ellipse_blur(image, x, y, hax…
物体検出を行っていて、各クラスに色を割り当ててバウンディングボックスを描画したい、という状況でした。何故か修正前コードでは表題のエラーが発生し、修正後コードのような書き換えをしなければなりませんでした。本質でない部分に大分時間を使ったので…
画像から特徴量抽出する方法として、Dense SIFTを使いたいと思ったのですが、何故かOpenCV2のあるバージョンで削除されてしまったようです。ただ幸いkeypointを指定することでDense SIFTを実施できるようなのでメモします(とはいえSIFTの特許の問題があるの…
// 画像を読み込む Mat lenna; imread("lenna.jpg").copyTo(lenna); if (lenna.empty()) { throw runtime_error("Failed to open image"); } // 画像を読み込む Mat clock; imread("clock.jpg").copyTo(clock); if (clock.empty()) { throw runtime_error("F…
照明ムラがある環境下で二値化を行い対象物を抽出しようとする場合、普通に二値化処理を行うと大抵上手く抽出できません。 下の画像はその例で、画像上部が明るめ、画像下部が暗めのになっています。この画像から米粒を抜き出そうとして大津の方法を適用する…
ディープラーニングの前処理として、画像のある色を別の色に変更しようとしていました。ただ、NumPyではforループをなるべく使用しないことが推奨されているため、どうやって実現すれば良いのか悩んでいましたが、ここ(Replace a range of colors with a sp…
輪郭をぼかさずにノイズを除去する方法としてバイラテラルフィルタを紹介されたのですが、今一つパラメータの意味が理解できていませんでした。 void bilateralFilter(const Mat& src, Mat& dst, int d, double sigmaColor, // 何これ? double sigmaSpace, …
RotatedRectは直線を利用して描くしかないようです。。。 // 画像を読み込む Mat source; imread("lenna.jpg").copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // RotatedRectを描画する Mat destination; source.c…
ellipseというメソッドを利用すると画像に楕円を書き込めますよ、というメモです。 // 画像を読み込む Mat source; imread("lenna.jpg").copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } Mat destination; source.co…
先鋭化フィルタを適用して輪郭を強調する例をメモします。OpenCVには用意されていない関数ですが、フィルタを自作して適用することで簡単に作成することが出来ます。作成するフィルタは以下の通りです(http://www.wakayama-u.ac.jp/~chen/education/image/2…
learnopencv.comのブログ(Filling holes in an image using OpenCV ( Python / C++ ) | Learn OpenCV)のメモになります。タイトルにあるように、OpenCVを使って穴を塗りつぶす方法についてブログに書かれており、MATLABにはimfillという関数があるけど、Op…
OpenCVの復習が必要になったのでメモしておきます。 // 画像を読み込む UMat source; imread("scene.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } UMat parts; imread("parts.jpg…
OpenCVの復習が必要になったのでメモしておきます。 // 画像を読み込む Mat source1; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } Mat source2; imread("lenna.…
OpenCVの復習が必要になったのでメモしておきます。 // 動画を読み込む VideoCapture capture = VideoCapture("movie.mp4"); if (!capture.isOpened()) { throw runtime_error("Failed to open movie"); } // 動画表示用のウインドウを作成する const string…
OpenCVの復習が必要になったのでメモしておきます。 // 画像を読み込む UMat source1; imread("scene1.jpg", CV_LOAD_IMAGE_COLOR).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } UMat source2; imread("scene2.…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像のコー…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 輝度平滑化…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } // 画像を…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("something1.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } UMat …
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("something1.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } UMat …
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source1; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source1); if (source1.empty()) { throw runtime_error("Failed to open image"); } // 画像を…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像の膨張を行…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像の収縮を行…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // エッジを検…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 縦方向のエ…
OpenCVの復習が必要になったのでメモしておきます。アルゴリズム自体の説明はここ(しぼりたてブログ Canny Edge Detection -アルゴリズム-)が詳しかったです。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCA…
OpenCVの復習が必要になったのでメモしておきます。 // 画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 切り取る箇所を指定する int…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像を平滑…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像を平滑…
OpenCVの復習が必要になったのでメモしておきます。 // グレースケールで画像を読み込む UMat source; imread("lenna.jpg", CV_LOAD_IMAGE_GRAYSCALE).copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // 画像を平滑…