网站设计建设一般多少钱,摄影师网站建设,简单的英文网站源码,怎么做微信钓鱼网站【测试环境】
vs2019
opencv4.8.0
【效果演示】 【核心实现代码】 //图像剪切
//参数#xff1a;src为源图像#xff0c; dst为结果图像, rect为剪切区域
//返回值#xff1a;返回0表示成功#xff0c;否则返回错误代码
int imageCrop(InputArray src, OutputArray dst,…【测试环境】
vs2019
opencv4.8.0
【效果演示】 【核心实现代码】 //图像剪切
//参数src为源图像 dst为结果图像, rect为剪切区域
//返回值返回0表示成功否则返回错误代码
int imageCrop(InputArray src, OutputArray dst, Rect rect)
{Mat input src.getMat();if (input.empty()) {return -1;}//计算剪切区域 剪切Rect与源图像所在Rect的交集Rect srcRect(0, 0, input.cols, input.rows);rect rect srcRect;if (rect.width 0 || rect.height 0) return -2;//创建结果图像dst.create(Size(rect.width, rect.height), src.type());Mat output dst.getMat();if (output.empty()) return -1;try {//复制源图像的剪切区域 到结果图像input(rect).copyTo(output);return 0;}catch (...) {return -3;}
}// 主程序开始 static string window_name Draw a Rect to crop;
static Mat src; //源图片
bool isDrag false;
Point point1; //矩形的第一个点
Point point2; //矩形的第二个点static void callbackMouseEvent(int mouseEvent, int x, int y, int flags, void* param)
{switch (mouseEvent) {case EVENT_LBUTTONDOWN:point1 Point(x, y);point2 Point(x, y);isDrag true;break;case EVENT_MOUSEMOVE:if (isDrag) {point2 Point(x, y);Mat dst src.clone();Rect rect(point1, point2); //得到矩形rectangle(dst, rect, Scalar(0, 0, 255));//画矩形imshow(window_name, dst); //显示图像}break;case EVENT_LBUTTONUP:if (isDrag) {isDrag false;Rect rect(point1, point2); //得到矩形imageCrop(src, src, rect); //图像剪切imshow(window_name, src); //显示图像}break;}return;
} 【完整演示代码下载】
https://download.csdn.net/download/FL1623863129/89633023