小ワザ/USBカメラ
画像イメージ操作 †
HSPCVではCVバッファに読み込んだ画像に対して様々な処理を行うことが出来ます。
任意サイズの画像イメージ操作(コピー、加算、減算、乗算ほか) |
---|
cvarea | コピー元領域の指定 |
cvcopy | 画像のコピー |
cvxors | 画像のXOR演算 |
画像イメージの高品質なリサイズ、スムージング、回転 |
---|
cvresize | 画像のリサイズ |
cvsmooth | 画像のスムージング |
cvrotate | 画像の回転 |
画像イメージからの閾値による抽出、反転、色変換 |
---|
cvthreshold | 画像を閾値で取得 |
cvconvert | 色モードの変換 |
cvflip | 画像の反転 |
カメラの向きは環境によっては、正常な向きの場合や上下が反転している場合などがあるようです。
(上下反転しているかしていないかの判定方法についてはよくわからないので、分かる方追記お願いします。)
今のところ、このような環境依存を考慮してユーザーが調整できるようにしておいたほうがいいと思います。
このように、正しい向きにするために上下反転したい場合や、
あるいは鏡のように動作させるために左右反転させたい場合など、画面を反転させる状況が頻繁に発生すると思います。
HSPCVでは上下・左右の反転にはcvflip命令が用意されています。
この命令でCVバッファ内の画像を上下あるいは左右に反転させることが出来ます。
とりあえずサンプルを見てみましょう。
キーボードの↑↓←→を押すと上下・左右が反転します。
+
| | サンプルスクリプト
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
|
#include "hspcv.as"
screen 0
onexit goto *owari
fd = dir_cur
picno = 0
cvbuffer 0, ginfo_winx, ginfo_winy
cvcapture CV_CAP_ANY, bid
*main
stick key
if key&128 : goto *owari
cvgetcapture
if key&10 : f^=1 if key&5 : f^=2 if f&1 : cvflip 0, bid
if f&2 : cvflip 1, bid
cvgetimg bid
await 20
goto *main
*owari
cvendcapture
end
|
|
- 他にもスムージングとか閾値とか面白そうなのありますが、よくわからないというか何に使うのか知らないので、私からの説明は出来ません。
分かる方は追記お願いします。 -- GENKI?