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

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

新規登録して質問してみよう
ただいま回答率
85.50%
OpenCV

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

C++

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

Q&A

1回答

5444閲覧

画像の緑色の部分の面積を求めるプログラム

Suginori1996

総合スコア24

OpenCV

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

C++

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

0グッド

0クリップ

投稿2016/01/15 05:52

###カメラで画像を取得し,緑色の部分の面積を求めるプログラムを作ろうとしています.
学校の卒研でカメラで画像を取得し,緑色の部分の面積を求めるプログラムを作ろうとしています.
フローチャートとpythonプログラムがありますが,c++への変換の仕方がわかりません.
ご協力お願いします.

###フローチャート
フローチャートです.

###pythonプログラム
import cv2
import numpy as np
from numpy import*

g_min = np.array([30,70,30])
g_max = np.array([70,255,255])

膨張化用のカーネル

k = np.ones((5,5),np.uint8)

カラートラッキング

def color_track(im,h_min,h_max):

im_h = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)# RGB色空間からHSV色空間に変換 im_m = cv2.inRange(im_h,h_min,h_max) # マスク画像の生成 im_m = cv2.medianBlur(im_m,7) # 平滑化 im_m = cv2.dilate(im_m,k,iterations=1) # 膨張化 im_c = cv2.bitwise_and(im,im,mask=im_m) # 色領域抽出 return im_m,im_c

Main

def main():
# カメラ指定
cap = cv2.VideoCapture(0)
im = cap.read()[1]
# 計算高速化のために画像サイズを1/2
im = cv2.resize(im,(im.shape[1]/2,im.shape[0]/2))
im_m,im_c = color_track(im,g_min,g_max)
M0 = np.count_nonzero(im_m)
D0=50
while True:
# 入力画像の取得
im = cap.read()[1]
# 計算高速化のために画像サイズを1/2
im = cv2.resize(im,(im.shape[1]/2,im.shape[0]/2))
im_m,im_c = color_track(im,g_min,g_max)
# 白色領域の画素数を計算
M = np.count_nonzero(im_m)
D = format( (sqrt(M0)/sqrt(M))*D0,".2f")
# マスク画像から指定した色の領域を抽出
cv2.putText(im_m,"Moment:"+str(M),(30,30),1,1.5,(150,70,50),2) #数値要検証
cv2.putText(im_m,"Distance:"+str(D),(30,70),1,1.5,(150,70,50),2)
# 結果表示
cv2.imshow("Camera",im)
cv2.imshow("Mask",im_m)
cv2.imshow("Color Tracking",im_c)
# キーが押されたらループから抜ける
if cv2.waitKey(10) > 0:
cap.release()
cv2.destroyAllWindows()
break

if name == 'main':
main()

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

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

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

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

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

hsk

2016/01/15 06:01

こちらの質問が他のユーザから「質問の範囲が広すぎる」という評価を受けています わからない点を明確にし、調査したこと・試したことと共に記入していただくと、回答が得られやすくなります。
guest

回答1

0

1.自力で変換する

2.下記のサイトの様に機械的に変換する
http://www.moongift.jp/2011/09/20110921-3/

投稿2016/01/15 06:39

EKD

総合スコア161

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問