void LabelingModel::alterLabel(short index, cv::Mat1b mask, bool negative) { if (mask.empty()) { // clear label mask = (labels == index); labels.setTo(0, mask); } else if (negative) { // remove pixels from label mask = mask.mul(labels == index); labels.setTo(0, mask); } else { // add pixels to label labels.setTo(index, mask); } // signal change emit partialLabelUpdate(labels, mask); invalidateMaskIcons(); }