環境
・python3.7
・Mac OS
・jupyter notebook
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
とりあえず閾値を下げるだけじゃダメなんでしょうか?
ダメならその旨を明記されると良いかと.
回答2件
0
ベストアンサー
役に立つかどうかは不明ですが,「CVの関数をてきとーに使ったらこんなん出ました」的なのをせっかくだから貼っておきます.
欲しい「シワ」とそれ以外とを選り分ける手段は謎ですが,何らかの足がかりにでもなれば.
コード:
↓のコード断片はC++ですが,まぁ,CVの関数が並んでいるだけなので.
C++
1//グレースケールで画像読込 2cv::Mat Img = cv::imread( "Hand.png", CV_LOAD_IMAGE_GRAYSCALE ); 3if( Img.empty() )return 0; 4cv::imshow( "Src", Img ); 5 6{//本件の画像では,背景と手とで明るさが明確に違うので,それを利用して簡素な処理で背景(暗い部分)をある程度除去 7 cv::Mat Mask; 8 cv::threshold( Img, Mask, 128, 255, cv::THRESH_BINARY ); 9 cv::erode( Mask, Mask, cv::Mat() ); 10 cv::dilate( Mask, Mask, cv::Mat() ); 11 cv::bitwise_and( Img, Mask, Img ); 12} 13 14//adaptiveThresholdを使ってみる 15cv::Mat Result; 16cv::adaptiveThreshold( Img, Result, 255, cv::ADAPTIVE_THRESH_GAUSSIAN_C, cv::THRESH_BINARY_INV, 5, 2 ); 17cv::imshow( "Result", Result );
追記: Why adaptiveThreshold ?
「シワ」とは凹凸で言えば凹の部分かな? → であれば,周辺よりも暗いことが多いのではなかろうか?
と考えた. それだけ.
投稿2020/07/02 08:04
編集2020/07/02 08:09総合スコア11996
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/07/02 08:10
おぉ!まさに自分の望んでいる出力結果です!!
このコードはpythonコードで打ち直せば使えるんでしょうか??
2020/07/02 08:20
pythonは知りませんが,
このC++のコード内で cv::threshold とか書いてるやつは,python側では,cv2.thoreshold みたいな感じでいけるんじゃないでしょうか,きっと.
退会済みユーザー
2020/07/02 08:26
ありがとうございます。とても助かりましたm(_ _)m
2020/07/02 08:34
こんなやっつけ処理ではなくて,ちゃんと欲しいシワだけを得るのはかなり難しい課題だと思う.
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。