md:demo抠图方法添加。

This commit is contained in:
taynpg 2024-12-26 16:47:17 +08:00
parent cd4f293551
commit fff85731c4

View File

@ -56,6 +56,25 @@ void CMainFrame::turn2blue(wxCommandEvent& event)
cv::Mat blueBackground(img_.size(), img_.type(), cv::Scalar(255, 0, 0)); // 蓝色 (B, G, R) cv::Mat blueBackground(img_.size(), img_.type(), cv::Scalar(255, 0, 0)); // 蓝色 (B, G, R)
blueBackground.copyTo(img_, mask); // 通过掩码复制蓝色区域到原图 blueBackground.copyTo(img_, mask); // 通过掩码复制蓝色区域到原图
win_img_->set_img(img_); win_img_->set_img(img_);
// cv::Mat mask = cv::Mat::zeros(img_.size(), CV_8UC1);
// cv::Rect rect(10, 10, img_.cols - 10, img_.rows - 10);
// cv::grabCut(img_, mask, rect, cv::Mat(), cv::Mat(), 5,
// cv::GC_INIT_WITH_RECT);
// // 创建一个蓝色背景,BGR格式的蓝色是(255, 0, 0)
// cv::Mat blueBackground(img_.size(), img_.type(), cv::Scalar(255, 0, 0));
// // 将前景区域(mask == cv::GC_PR_FGD)复制到蓝色背景中
// cv::Mat result;
// img_.copyTo(result, mask); // 前景区域从原图像复制
// // 将背景区域填充为蓝色(mask != cv::GC_PR_FGD)
// cv::Mat backgroundMask = (mask != cv::GC_PR_FGD); // 背景区域
// blueBackground.copyTo(result, backgroundMask); // 将背景区域填充为蓝色
// // 将处理后的结果显示到窗口中
// win_img_->set_img(result);
} }
void CMainFrame::turn2white(wxCommandEvent& event) void CMainFrame::turn2white(wxCommandEvent& event)