質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

986閲覧

OpenCVを用いたエッジ検出に関して

iLullZz

総合スコア1

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/07/20 17:29

編集2020/07/20 17:40

C++で、opencvの中のエッジ検出プログラムを使用しているのですが、
エッジ検出処理の後に黒以外のピクセルの(場所的な)偏りを出力したいです。
エッジそのものの補正に関する記事はいくつか見つけたのですが、ピクセルそのものの偏りに関する記事を見つけられませんでした。
知っている方がいましたら、教えて頂きたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

branch

2020/07/21 00:44

こんにちは. ピクセルの偏り,とおっしゃいます点に関して,もう少し詳しくお聞かせくださいませんでしょうか. どのような処理を想定しているかで,効果的な統計量が変わってきます.
iLullZz

2020/07/21 03:42

ざっくり画像を3分割して、黒以外のピクセルが、左側部分に多ければ「1」、中央部分に多ければ「2」、右側部分に多ければ「3」と言った感じに出力したいです。
fana

2020/07/21 04:13 編集

数えればよいのではないでしょうか. それはそれとして, 3分割した全ての領域でだいたい同じくらいだったりとか,左と右に多くて中央が少ないだとか,色々なパターンが有り得ると思いますが,どうするのでしょう?
iLullZz

2020/07/21 05:04

CountNonZeroを用いて数えることも考えましたが、RGB値のうち1つしか取得出来ず、行き詰まっています。 また、一番多いところだけ分かればいいのでパターンはさほどないと考えています。
fana

2020/07/21 05:08 編集

どんな状態なのか謎なので,何かしらをやってみたならば,その具体コードを質問文内に追記してください.
guest

回答2

0

ベストアンサー

こんにちは.
早速の補足回答ありがとうございます.

OpenCVはpythonでしか実装経験がないのでざっくりとした回答となってしまいます,ご了承くださいませ.

まず,私の想定で間違っていなければですが...特別な処理は必要ありません.
画像を縦方向にスライスして,それぞれの列でゼロ出ない座標の数をカウントアップしてはいかがでしょう.forを二重にして,if画素値!=0でカウントすれば実現できます.

処理に関しては下のようなイメージです.
処理イメージ

ここまでできれば,列ごとのカウントを一定区間で総計し,比較することで実現できるかと思います.


補足のなかの「ざっくりと三分割」という言葉に「分割線の判断も行わせたい」というニュアンスを感じたので,この点も補足します.
このあたりが参考になるのではないでしょうか.重心検出に関しては,検出した輪郭ごとにピクセル重心(cv::momentsを利用)を計算しています.

検出したエッジ点ごとの重心座標から,解析対象の画像に対してLeftside,Center,Rightsideで三分する境界を決定し,それぞれに対して処理を行うことで実現できると思います.

投稿2020/07/21 05:11

branch

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fana

2020/07/21 06:49

(何か解決したみたいですが,結局何をする話だったのかがわからん感)
branch

2020/07/21 07:21

お世話になっております. ざっくりとした質問にはざっくりとした回答しか付けられないのがもどかしいところですね... (私も質問する際は抜粋の程度や抽象度に毎度悩むので共感します) 解決してよかったです.
guest

0

ピクセルの(場所的な)偏り

用途に見合った何らかのモーメント(モーメント特徴)を計算する.

投稿2020/07/21 04:17

編集2020/07/21 04:26
fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問