ここでは愚かな質問があります。cv2.findNonZeroとNumpy.NonZeroの違い
いくつかの白黒画像からピクセルの場所を探して、NumpyライブラリとOpenCVからこの2つの機能が見つかりました。
Iは、インターネット(http://docs.opencv.org/trunk/d1/d32/tutorial_py_contour_properties.html)上に見出さ例:
mask = np.zeros(imgray.shape,np.uint8)
cv2.drawContours(mask,[cnt],0,255,-1)
pixelpoints = np.transpose(np.nonzero(mask))
pixelpointsCV2 = cv2.findNonZero(mask)
述べ
OpenCVのはの座標を(与えながらnumpyのは、(行、列)形式の座標を与えますx、y)フォーマット。したがって、基本的に回答は交換されます。 row = xおよびcolumn = yに注意してください。
私の英語の理解に基づいて、説明が間違っていませんか?それはすべきではない:OpenCVのは(Y、X)又は(列、行)形式の座標を与えながら
numpyのは、(行、列)形式の座標を与えます。
私の質問は以下のとおり
はnumpyのリターン(行、列)/(x、y)のとOpenCVの(Y、X)行= xで、COLをい= y? IMHOは行= yでなければならないが、col = x?
どちらが計算効率が良いですか?時間の面では&のリソースです。
多分、私は非母国語の英語の話者ではないため、この単純なことを正しく理解できません。
間違った部分は_Note that、row = xとcolumn = y_とするべきだと思う:_Note that、** row = y ** and ** column = x ** _。したがって、1)numpyは(row、col)=(y、x)を返し、OpenCVは(x、y)=(col、row)を返します。 2)テストをいくつか実行するだけですが、大きな違いはないと思います。あなたはPythonで作業しているので、私はPythonのものを使用したい(numpy) – Miki
@Miki私はいくつかのテストを実行し、実際OpenCVは(x、y)=(col、row)を返します。あなたが回答としてあなたのコメントを投稿すれば、私はそれを受け入れるでしょう – Roxanne
答えとして掲示される。うまくいきました; D – Miki