teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

キャンセル

2019/01/28 04:01

投稿

Kaku-m
Kaku-m

スコア13

title CHANGED
File without changes
body CHANGED
@@ -25,104 +25,8 @@
25
25
  ```#include "main.h"
26
26
 
27
27
 
28
- /// 指定したフレーム番号の画像をimageに抜き出す
29
- /// imageをグレースケールに変換
30
- int GetGrayImage(cv::VideoCapture& video, int frameNo, cv::Mat& image)
31
- {
32
- const int x = 145, y = 45; // 抜き出す領域の中心点
33
- const int w = 370, h = 370; // 抜き出す領域の幅(w*hが抜き出す幅となる)
34
- CvRect rect = {x, y, w, h};
35
28
 
36
- cv::Mat frame;
37
- video.set( CV_CAP_PROP_POS_FRAMES, frameNo);
38
- video >> frame;
39
- ASSERT( !frame.empty(), "img2は空です");
40
-
41
- cv::Mat cut(frame, rect);
42
-
43
- cv::cvtColor(cut, image, CV_BGR2GRAY);
44
29
 
45
- return 0;
46
- }
47
-
48
- //カラー画像切り取り用
49
- int GetImage(cv::VideoCapture& video2, int n, cv::Mat& img)
50
- {
51
-
52
- CvRect rect = {145, 45, 370, 370};
53
-
54
- cv::Mat frame;
55
- video2.set( CV_CAP_PROP_POS_FRAMES, n);
56
- video2 >> frame;
57
- ASSERT( !frame.empty(), "img2は空です");
58
-
59
- img = cv::Mat(frame,rect);
60
-
61
- return 0;
62
- }
63
-
64
-
65
- ///誤差を計算する関数
66
- int gosa(cv::Point point1,cv::Point point2)
67
- {
68
- int t;
69
- t = (point1.x-point2.x)*(point1.x-point2.x)+(point1.y-point2.y)*(point1.y-point2.y);
70
-
71
- return t;
72
- }
73
-
74
-
75
-
76
- int main(void)
77
- {
78
-
79
-
80
- // 動画の読み込み
81
- cv::VideoCapture video("data/mk/005.avi");
82
- // 動画を書き込み用ファイル
83
- cv::VideoWriter writeVideo("data/mk/1_4c_video.avi",-1,30.0,cv::Size(370,370));
84
- // 動画のフレーム数を得る
85
- const int FrameNum = (int)video.get(CV_CAP_PROP_FRAME_COUNT);
86
- printf("動画フレーム数 : %d\n", FrameNum);
87
-
88
- cv::Mat img1;
89
- cv::Mat img2;
90
-
91
- int a = 0,b = (FrameNum-1);
92
-
93
-
94
- GetGrayImage(video, a, img1); //a番目のフレーム番号のデータをimg1に入れる
95
- GetImage(video, a, img2);
96
-
97
- //着目点を設定する
98
- cv::Point trackingPoint[100];
99
-
100
- //画像上で着目点を設定
101
- //for(int i = 0;i < 2;i++){
102
- SetViewPoint(img2, trackingPoint[0]);
103
- //}
104
-
105
- //SetViewPoint(img2, trackingPoint[1]); // 2つめのトラッキングポイント
106
- //SetViewPoint(img2, trackingPoint[2]); //3つめのトラッキングポイント
107
-
108
-
109
- //////////着目点の座標設定//////////
110
- ////////////////////////////////////
111
- #if 0
112
- int t,r;
113
- printf("着目点のx座標=");
114
- scanf("%d",&t);
115
- printf("着目点のy座標=");
116
- scanf("%d",&r);
117
-
118
- //trackingPoint[0].x=147;
119
- //trackingPoint[0].y=127;
120
- ////////////////////////////////////
121
- ////////////////////////////////////
122
-
123
- 以下省略。
124
-
125
-
126
30
  ### 試したこと
127
31
 
128
32
  ここに問題に対して試したことを記載してください。