ShadowBack:: ShadowBack ( int iRows, int iCols) {
m_iHeight = iRows;
m_iWidth = iCols;
vvBackground.resize ( m_iHeight) ;
for ( int i = 0 ; i < m_iHeight; i++ ) {
vvBackground[ i] .resize ( m_iWidth) ;
for ( int j = 0 ; j < m_iWidth; j++ ) {
vvBackground[ i] [ j] .resize ( 0 ) ;
}
} //Initial the 3D vector to record the Background value
vvShadow.resize ( m_iHeight) ;
for ( int i = 0 ; i < m_iHeight; i++ ) {
vvShadow[ i] .resize ( m_iWidth) ;
for ( int j = 0 ; j < m_iWidth; j++ ) {
vvShadow[ i] [ j] .resize ( 0 ) ;
}
} //Initial the 3D vector to record the Shadow value
}
ShadowBack:: ~ShadowBack( ) {
}
void ShadowBack:: Compare ( Mat& ori,Mat& com) {
m_Frame = ori;
m_Comparing = com;
for ( int w = 0 ; w < m_Frame.cols ; w++ ) {
for ( int h = 0 ; h < m_Frame.rows ; h++ ) {
if ( m_Comparing.at < Vec3b> ( h, w) [ 0 ] == 255 &&
m_Comparing.at < Vec3b> ( h, w) [ 1 ] == 255 &&
m_Comparing.at < Vec3b> ( h, w) [ 2 ] == 255
) {
//foreground
}
else if ( m_Comparing.at < Vec3b> ( h, w) [ 0 ] == 128 &&
m_Comparing.at < Vec3b> ( h, w) [ 1 ] == 128 &&
m_Comparing.at < Vec3b> ( h, w) [ 2 ] == 128 )
{
vvShadow[ w] [ h] .push_back ( m_Frame.at < Vec3b> ( h, w) ) ; //record <Vec3b> to vvShadow[w][h]
//Shadow
}
else
{
vvBackground[ w] [ h] .push_back ( m_Frame.at < Vec3b> ( h, w) ) ; //record <Vec3b> to vvBackground[w][h]
//Background
}
}
}
}
U2hhZG93QmFjazo6U2hhZG93QmFjayhpbnQgaVJvd3MsIGludCBpQ29scyl7CgkKCW1faUhlaWdodCA9IGlSb3dzOwoJbV9pV2lkdGggPSBpQ29sczsKCgl2dkJhY2tncm91bmQucmVzaXplKG1faUhlaWdodCk7Cglmb3IgKGludCBpID0gMDsgaSA8IG1faUhlaWdodDsgaSsrKXsKCQl2dkJhY2tncm91bmRbaV0ucmVzaXplKG1faVdpZHRoKTsKCQlmb3IgKGludCBqID0gMDsgaiA8IG1faVdpZHRoOyBqKyspewoJCQl2dkJhY2tncm91bmRbaV1bal0ucmVzaXplKDApOwoJCX0KCX0vL0luaXRpYWwgdGhlIDNEIHZlY3RvciB0byByZWNvcmQgdGhlIEJhY2tncm91bmQgdmFsdWUgCgoJdnZTaGFkb3cucmVzaXplKG1faUhlaWdodCk7Cglmb3IgKGludCBpID0gMDsgaSA8IG1faUhlaWdodDsgaSsrKXsKCQl2dlNoYWRvd1tpXS5yZXNpemUobV9pV2lkdGgpOwoJCWZvciAoaW50IGogPSAwOyBqIDwgbV9pV2lkdGg7IGorKyl7CgkJCXZ2U2hhZG93W2ldW2pdLnJlc2l6ZSgwKTsKCQl9Cgl9Ly9Jbml0aWFsIHRoZSAzRCB2ZWN0b3IgdG8gcmVjb3JkIHRoZSBTaGFkb3cgdmFsdWUgCgkKfQpTaGFkb3dCYWNrOjp+U2hhZG93QmFjaygpewp9Cgp2b2lkIFNoYWRvd0JhY2s6OkNvbXBhcmUoTWF0JiBvcmksTWF0JiBjb20pewoJbV9GcmFtZSA9IG9yaTsKCW1fQ29tcGFyaW5nID0gY29tOwoJZm9yIChpbnQgdyA9IDA7IHcgPCBtX0ZyYW1lLmNvbHM7IHcrKyl7CgkJZm9yIChpbnQgaCA9IDA7IGggPCBtX0ZyYW1lLnJvd3M7IGgrKyl7CgkJCWlmICggbV9Db21wYXJpbmcuYXQ8VmVjM2I+KGgsIHcpWzBdID09IDI1NSAgICYmCgkJCQkgbV9Db21wYXJpbmcuYXQ8VmVjM2I+KGgsIHcpWzFdID09IDI1NSAgJiYKCQkJICAgICBtX0NvbXBhcmluZy5hdDxWZWMzYj4oaCwgdylbMl0gPT0gMjU1IAoJCQkpewoJCQkJCS8vZm9yZWdyb3VuZAoJCQkJCQoJCQl9CgkJCWVsc2UgaWYgKG1fQ29tcGFyaW5nLmF0PFZlYzNiPihoLCB3KVswXSA9PSAxMjggJiYKCQkJCW1fQ29tcGFyaW5nLmF0PFZlYzNiPihoLCB3KVsxXSA9PSAxMjggJiYKCQkJCW1fQ29tcGFyaW5nLmF0PFZlYzNiPihoLCB3KVsyXSA9PSAxMjgpCgkJCXsKCQkJCXZ2U2hhZG93W3ddW2hdLnB1c2hfYmFjayhtX0ZyYW1lLmF0PFZlYzNiPihoLCB3KSk7IC8vcmVjb3JkIDxWZWMzYj4gdG8gdnZTaGFkb3dbd11baF0KCQkJCS8vU2hhZG93IAoJCQl9CgkJCWVsc2UKCQkJewoJCQkJdnZCYWNrZ3JvdW5kW3ddW2hdLnB1c2hfYmFjayhtX0ZyYW1lLmF0PFZlYzNiPihoLCB3KSk7IC8vcmVjb3JkIDxWZWMzYj4gdG8gdnZCYWNrZ3JvdW5kW3ddW2hdCgkJCQkvL0JhY2tncm91bmQKCQkJfQoKCQl9Cgl9CgkKCQp9
compilation info
prog.cpp:1:1: error: 'ShadowBack' does not name a type
ShadowBack::ShadowBack(int iRows, int iCols){
^
prog.cpp:23:1: error: 'ShadowBack' does not name a type
ShadowBack::~ShadowBack(){
^
prog.cpp:26:6: error: 'ShadowBack' has not been declared
void ShadowBack::Compare(Mat& ori,Mat& com){
^
prog.cpp:26:26: error: variable or field 'Compare' declared void
void ShadowBack::Compare(Mat& ori,Mat& com){
^
prog.cpp:26:26: error: 'Mat' was not declared in this scope
prog.cpp:26:31: error: 'ori' was not declared in this scope
void ShadowBack::Compare(Mat& ori,Mat& com){
^
prog.cpp:26:35: error: 'Mat' was not declared in this scope
void ShadowBack::Compare(Mat& ori,Mat& com){
^
prog.cpp:26:40: error: 'com' was not declared in this scope
void ShadowBack::Compare(Mat& ori,Mat& com){
^
stdout