Preprocessing Coding Program Pengenalan Peralatan Bengkel Motor .1 Inisialisasi Webcam
C.
Cropping
static void onMouse
int event
, int
x ,
int y
, int
flag ,
void data
{ if
event =
CV_EVENT_LBUTTONDOWN return
; if
data == 0
return ;
int length = 256;
int panel = 200;
int margin = 10;
int thickness = 23;
if length+margin
x ||
x length+panel-margin
return ;
if margin
y ||
y panel-margin
return ;
unsigned char temp = 0;
if margin =
y y
= thickness+margin { temp = 67;
C }
if temp == 0
return ;
unsigned char sel;
try {
sel = static_cast
unsigned char data
; }
catch ... {
return ;
} sel = temp;
} int
TestCroppedStreaming { int
idCamera = -1; cek di aplikasi camera index mulai dari 0
config cfg
..\\..\\sample\\dct.xml ;
TO_DO: get cameraid idCamera = 1;
cv:: VideoCapture
vcidCamera; std::
string nameWindow =
DCT - CS ;
cv::namedWindow nameWindow, cv:: WINDOW_AUTOSIZE
; cv::
Mat frame;
cv:: Rect
crop0,0 ujung kiri atas
, 479, 479; ukuran crop
unsigned char key = 0;
unsigned char mouse = 0;
detection detcfg;
cv::setMouseCallback nameWindow, onMouse, static_cast
void mouse ;
unsigned int i = 0;
int length = 256;
int panel = 200;
int margin = 10;
int lenZigzag = 35;
int thickness = 23;
cv:: Mat
canvascv:: Size
length+panel, length+thickness+margin,
CV_8UC1 , cv::
Scalar 200;
Tombol utamacv::
Point length+margin+40, margin+13,
C ,
Deteksi Alat ,
false ;
utama.sudut.emplace_backcv:: Point
length+margin, margin; utama.sudut.emplace_backcv::
Point length+panel-margin, margin;
utama.sudut.emplace_backcv:: Point
length+panel-margin, margin+thickness; utama.sudut.emplace_backcv::
Point length+margin, margin+thickness;
Tombol dct256cv::
Point margin2+3, length+margin2+15,
8 ,
256 ,
true ;
dct256.sudut.emplace_backcv:: Point
margin2, length+margin2; dct256.sudut.emplace_backcv::
Point margin2 + lenZigzag, length+margin2;
dct256.sudut.emplace_backcv:: Point
margin2 + lenZigzag,length+thickness+margin2; dct256.sudut.emplace_backcv::
Point margin2 , length+thickness+margin2;
Tombol dct128cv::
Point margin2+52, length+margin2+15,
7 ,
128 ,
true ;
dct128.sudut.emplace_backcv:: Point
margin2+50, length+margin2; dct128.sudut.emplace_backcv::
Point margin2+50 + lenZigzag, length+margin2;
dct128.sudut.emplace_backcv:: Point
margin2+50lenZigzag,length+thickness+margin2; dct128.sudut.emplace_backcv::
Point margin2+50 , length+thickness+margin2;
Tombol dct64cv::
Point margin2+108, length+margin2+15,
6 ,
64 ,
true ;
dct64.sudut.emplace_backcv:: Point
margin2+100, length+margin2; dct64.sudut.emplace_backcv::
Point margin2+100 + lenZigzag, length+margin2;
dct64.sudut.emplace_backcv:: Point
margin2+100lenZigzag,length+thickness+margin2; dct64.sudut.emplace_backcv::
Point margin2+100 , length+thickness+margin2;
Tombol dct32cv::
Point margin2+157, length+margin2+15,
5 ,
32 ,
true ;
dct32.sudut.emplace_backcv:: Point
margin2+150, length+margin2; dct32.sudut.emplace_backcv::
Point margin2+150 + lenZigzag, length+margin2;
dct32.sudut.emplace_backcv:: Point
margin2+150lenZigzag,length+thickness+margin2; dct32.sudut.emplace_backcv::
Point margin2+150 , length+thickness+margin2;
Tombol dct16cv::
Point margin2+206, length+margin2+15,
4 ,
16 ,
true ;
dct16.sudut.emplace_backcv:: Point
margin2+200, length+margin2; dct16.sudut.emplace_backcv::
Point margin2+200 + lenZigzag, length+margin2;
dct16.sudut.emplace_backcv:: Point
margin2+200 +lenZigzag, length+thickness+margin2;
dct16.sudut.emplace_backcv:: Point
margin2+200 , length+thickness+margin2; Tombol
dct8cv:: Point
margin2+262, length+margin2+15, 3
, 8
, true
; dct8.sudut.emplace_backcv::
Point margin2+250, length+margin2;
dct8.sudut.emplace_backcv:: Point
margin2+250 + lenZigzag, length+margin2; dct8.sudut.emplace_backcv::
Point margin2+250 + lenZigzag,
length+thickness+margin2; dct8.sudut.emplace_backcv::
Point margin2+250 , length+thickness+margin2;
TombolPlus kontrolUi;
kontrolUi.tombols.emplace_backutama; kontrolUi.tombols.emplace_backdct256;
kontrolUi.tombols.emplace_backdct128; kontrolUi.tombols.emplace_backdct64;
kontrolUi.tombols.emplace_backdct32; kontrolUi.tombols.emplace_backdct16;
kontrolUi.tombols.emplace_backdct8; cv::setMouseCallback nameWindow, onMouse,
static_cast void
kontrolUi ; std::
vector cv::
Point blank;
blank.emplace_backcv:: Point
length+margin, margin+thickness+1; blank.emplace_backcv::
Point length+panel-margin, margin+thickness+1;
blank.emplace_backcv:: Point
length+panel-margin, length-margin; blank.emplace_backcv::
Point length+margin, length-margin;
std:: vector
std:: vector
cv:: Point
blanks; blanks.push_backblank;
cv:: Rect
viewPort0,0 , length, length;
while key = 27 {
GambarTombolcanvas, kontrolUi.tombols, key; HWND
hwnd = HWND
cvGetWindowHandlenameWindow.c_str; key = cv::waitKey50;
if hwnd == 0 || IsWindowVisiblehwnd {
key = 27; break
; }
D. Resizing
vc frame; cv::
Mat bin = framecrop;
cv::cvtColorbin, bin, CV_RGB2GRAY
; cv::resizebin, bin, cv::
Size length, length;
cv:: Mat
feed = canvasviewPort; feed.setTocv::
Scalar 0;
set item semua cv::
Rect viewSelected0,0
, length, length; feed = canvasviewSelected;
bin.copyTofeed; switch
kontrolUi.terpilih { case
8 : length = 256;
break ;
case 7
: length = 128; break
; case
6 : length =
64; break
; case
5 : length =
32; break
; case
4 : length =
16; break
; case
3 : length =
8; break
; case
67: Check
key = kontrolUi.terpilih; kontrolUi.terpilih = 1;
reset break
; }