質問編集履歴

2

古いプログラムを張ってしまいました

2016/10/21 05:43

投稿

yamata
yamata

スコア36

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  現在のプログラムを以下に示します。
16
16
 
17
- ・赤枠で囲った領域と、ROIの範囲を同じにしたい
17
+ ・赤枠で囲った領域と、ROIの範囲を同じにしたい(右の赤枠が一致しない)
18
18
 
19
19
  ・できたら、もう少し簡潔にしたい
20
20
 
@@ -78,9 +78,9 @@
78
78
 
79
79
  rect1.y = cvRound(0);
80
80
 
81
- rect1.width = cvRound(img->width/2);
81
+ rect1.width = cvRound(200);
82
82
 
83
- rect1.height = cvRound(img->height/2);
83
+ rect1.height = cvRound(480);
84
84
 
85
85
  cvSetImageROI(copy_img1,rect1);
86
86
 
@@ -88,13 +88,13 @@
88
88
 
89
89
  CvRect rect2;
90
90
 
91
- rect2.x = cvRound(500);
91
+ rect2.x = cvRound(600);
92
92
 
93
- rect2.y = cvRound(500);
93
+ rect2.y = cvRound(0);
94
94
 
95
- rect2.width = cvRound(img->width/2);
95
+ rect2.width = cvRound(200);
96
96
 
97
- rect2.height = cvRound(img->height/2);
97
+ rect2.height = cvRound(300);
98
98
 
99
99
  cvSetImageROI(copy_img2,rect2);
100
100
 

1

修正しました

2016/10/21 05:43

投稿

yamata
yamata

スコア36

test CHANGED
File without changes
test CHANGED
@@ -12,11 +12,15 @@
12
12
 
13
13
 
14
14
 
15
+ 現在のプログラムを以下に示します。
16
+
15
- cvcreatImageなど囲った領域の確保て、その領域にテンプレートマッチングを行えば良と思うのですが、出来なくて、、、
17
+ ・赤枠で囲った領域と、ROI範囲同じに
18
+
19
+ ・できたら、もう少し簡潔にしたい
16
20
 
17
21
 
18
22
 
19
- よろしくお願いします。
23
+ 以上、よろしくお願いします。
20
24
 
21
25
 
22
26
 
@@ -25,3 +29,105 @@
25
29
 
26
30
 
27
31
  ![イメージ説明](210146c93d750bd51eaca0a3d3f2a18c.png)
32
+
33
+
34
+
35
+ ```
36
+
37
+
38
+
39
+ int
40
+
41
+ main(int argc, char *argv[])
42
+
43
+ {
44
+
45
+ IplImage * img = NULL;
46
+
47
+ IplImage * copy_img1 = NULL;
48
+
49
+ IplImage * copy_img2;
50
+
51
+
52
+
53
+ //--------原画像を読み込む---------
54
+
55
+ img=cvLoadImage("ペンギン.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); //カラー読み込み
56
+
57
+ copy_img1=cvCloneImage(img);
58
+
59
+ copy_img2=cvCloneImage(img);
60
+
61
+
62
+
63
+ cvRectangle(img,cvPoint(0,0),cvPoint(200,480),CV_RGB(255,0,0),3);
64
+
65
+
66
+
67
+ cvRectangle(img,cvPoint(600,0),cvPoint(200,300),CV_RGB(255,0,0),3);
68
+
69
+
70
+
71
+ //cvSetImageROI(img,cvRect(0,0,img->width/2,img->height/2));
72
+
73
+
74
+
75
+ CvRect rect1;
76
+
77
+ rect1.x = cvRound(0);
78
+
79
+ rect1.y = cvRound(0);
80
+
81
+ rect1.width = cvRound(img->width/2);
82
+
83
+ rect1.height = cvRound(img->height/2);
84
+
85
+ cvSetImageROI(copy_img1,rect1);
86
+
87
+
88
+
89
+ CvRect rect2;
90
+
91
+ rect2.x = cvRound(500);
92
+
93
+ rect2.y = cvRound(500);
94
+
95
+ rect2.width = cvRound(img->width/2);
96
+
97
+ rect2.height = cvRound(img->height/2);
98
+
99
+ cvSetImageROI(copy_img2,rect2);
100
+
101
+
102
+
103
+ //テンプレート画像表示
104
+
105
+ cvNamedWindow("img_window",CV_WINDOW_AUTOSIZE);
106
+
107
+ cvShowImage("img_window",img);
108
+
109
+
110
+
111
+ //テンプレート画像表示
112
+
113
+ cvNamedWindow("copy_img1_window",CV_WINDOW_AUTOSIZE);
114
+
115
+ cvShowImage("copy_img1_window",copy_img1);
116
+
117
+
118
+
119
+ //テンプレート画像表示
120
+
121
+ cvNamedWindow("copy_img2_window",CV_WINDOW_AUTOSIZE);
122
+
123
+ cvShowImage("copy_img2_window",copy_img2);
124
+
125
+
126
+
127
+
128
+
129
+ cvWaitKey(0);
130
+
131
+ }
132
+
133
+ ```