Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void GUIMyFrame1::m_b_prewitt_click( wxCommandEvent& event )
- {
- wxSize m_size = Img_Org.GetSize();
- const int width = m_size.GetWidth();
- const int height = m_size.GetHeight();
- unsigned char* org_data = Img_Org.GetData();
- unsigned char* cpy_data = (unsigned char*)malloc(width * height * 3 * sizeof(unsigned char));
- int ver, hor;
- for (int y = 1; y < height - 1; ++y)
- {
- for (int x = 1; x < width - 1; ++x)
- {
- for (int off = 0; off < 3; ++off)
- {
- ver = org_data[3 * ((y - 1) * width + (x - 1)) + off];
- ver += org_data[3 * (y * width + (x - 1)) + off];
- ver += org_data[3 * ((y + 1) * width + (x - 1)) + off];
- ver -= org_data[3 * ((y - 1) * width + (x + 1)) + off];
- ver -= org_data[3 * (y * width + (x + 1)) + off];
- ver -= org_data[3 * ((y + 1) * width + (x + 1)) + off];
- if (ver > 255) ver = 255;
- else if (ver < 0) ver = 0;
- hor = org_data[3 * ((y - 1) * width + (x - 1)) + off];
- hor += org_data[3 * ((y - 1) * width + x) + off];
- hor += org_data[3 * ((y - 1) * width + (x + 1)) + off];
- hor -= org_data[3 * ((y + 1) * width + (x + 1)) + off];
- hor -= org_data[3 * ((y + 1) * width + x) + off];
- hor -= org_data[3 * ((y + 1) * width + (x - 1)) + off];
- if (hor > 255) hor = 255;
- else if (hor < 0) hor = 0;
- cpy_data[3 * (y * width + x) + off] = sqrt(ver * ver + hor * hor);
- }
- }
- }
- Img_Cpy.Create(m_size, cpy_data);
- Repaint();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement