画像処理
ディープラーニングのモデルをネットから拾ってくると、画像読み込みにopencvが使われているケースやpillowが使われているケースがあります。自分は使い慣れている/速いという理由でopencvを使ってもらえると助かるのですが、pillowが使われているケースも…
最近以下の本を買って読んでみたのですが、各社事例の薄い紹介に留まっており、アルゴリズム等を説明しているわけではないためエンジニアには特に有用な本でないと思いました。 画像認識の極み?ディープラーニング" (映像情報MOOK)作者: 映像情報インダスト…
一年くらい前にヒストグラムを使って画像の類似度を調べる方法をメモしていたのですが、今回はそれとは別の方法を見つけたのでその記事をメモしておきます。 ni4muraano.hatenablog.com tech.unifa-e.com 上記の記事で取り上げられているimagehashというライ…
照明ムラがある環境下で二値化を行い対象物を抽出しようとする場合、普通に二値化処理を行うと大抵上手く抽出できません。 下の画像はその例で、画像上部が明るめ、画像下部が暗めのになっています。この画像から米粒を抜き出そうとして大津の方法を適用する…
ディープラーニングの前処理として、画像のある色を別の色に変更しようとしていました。ただ、NumPyではforループをなるべく使用しないことが推奨されているため、どうやって実現すれば良いのか悩んでいましたが、ここ(Replace a range of colors with a sp…
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"); } // 画像を平滑…
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"); } // 大津の方法…