//DefferdContextの作成(必要なスレッド数作るとよい pDevice->CreateDeferredContext(0, &pDfContext); DefferdContextの作成方法は単純でDeviceからCreateDeferredContext()を呼んであげたら作れます。 この時注意が必要なのがDefferdContext単体でスレッドセーフな訳ではないということです。 //DefferdContextの作成(必要なスレッド数作るとよい pDevice->CreateDeferredContext(0, &pDfContext); thread t1([](){ pDfContext->VSSetShader(nullptr, nullptr, 0); //スレッドセーフになっていないため動作不定 }) thread t2([](){ pDfContext->VS
OpenCVで輪郭を取得することはできますが、円などハフ変換の記事は インターネット上にたくさんありますが、四角形を検出するところまでの記事が ネット上では少なかったので書いて見ようかと思いました。 自分のブログでもCannyでエッジを取得して判定する記事を書きましたが 二値化処理が少し複雑で、エッセンスの部分が分かりにくかったため、 さらにシンプルなものを掲載しようかと思います。 処理の流れ プログラムはPythonとOpenCVを使います。 画像を読み込む 画像のグレイスケール・二値化 輪郭を取得 輪郭の近似 近似条件の近似カーブ最大距離を輪郭長の0.02とする(0.02は任意) 近似処理にはcv2.approxPolyDP()を使用します。 各オブジェクトの輪郭四角判定 1. 角が4つある 2. 面積値が条件以上ある 3. 凸形状である isContourConvex()を使用する
図形を判別する手順 下記の手順で図形を判別してみます。 輪郭を抽出する 抽出した輪郭を直線に近似する 近似した直線の数を数える 輪郭を直線に近似して数を数えるわけですから、円などには通じなさそうですね。実際にどうなるか試してみましたので、下記をお読みください。 <Window x:Class="cv2_test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/marku
import cv2 import numpy as np from IPython import display from matplotlib import pyplot as plt def imshow(img, format=".jpg", **kwargs): """ndarray 配列をインラインで Notebook 上に表示する。 """ img = cv2.imencode(format, img)[1] img = display.Image(img, **kwargs) display.display(img) def draw_contours(img, contours, ax): """輪郭の点及び線を画像上に描画する。 """ ax.imshow(img) ax.set_axis_off() for i, cnt in enumerate(contours):
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く