问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

opencv如何在显示的窗口中用鼠标提取一块区域

发布网友 发布时间:2022-04-20 20:30

我来回答

3个回答

热心网友 时间:2022-04-27 09:45

//自己写的代码,拖动鼠标截取一部分图像
#include <cv.h>
#include <highgui.h>

bool drawing = false;
CvRect rect;
CvPoint origin;
IplImage* src;
IplImage* dst;

void onMouse(int event,int x,int y,int flags,void* param = NULL);

int main(int argc, char* argv[])
{
src = cvLoadImage("D:\\Lena.jpg", -1);
cvNamedWindow("源图片",1);
cvSetMouseCallback("源图片",onMouse,NULL);//捕捉鼠标
cvShowImage("源图片",src);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&src);
cvReleaseImage(&dst);
return 0;
}
//鼠标事件处理函数
void onMouse(int event,int x,int y,int flags,void* param)
{
if(event == CV_EVENT_LBUTTONDOWN && !CV_EVENT_MOUSEMOVE)
{
drawing = true;
origin=cvPoint(x,y);
rect=cvRect(x,y,0,0);
}
else if(event==CV_EVENT_MOUSEMOVE)
{
if(drawing)
{
rect.x=MIN(origin.x, x);
rect.y=MIN(origin.y,y);
rect.height = abs(origin.x-x);
rect.width = abs(origin.y-y);
}
}
else if(event == CV_EVENT_LBUTTONUP )
{
drawing = false;
if(rect.height==0 || rect.width==0)
{
cvDestroyWindow("截图");
return;
}
dst=cvCreateImage(cvSize(rect.width,rect.height),src->depth,src->nChannels);
cvSetImageROI(src,rect);
cvCopy(src,dst);
cvResetImageROI(src);

cvNamedWindow("截图",1);
cvShowImage("截图",dst);
cvSaveImage("截图.jpg",dst);
cvWaitKey(0);
cvDestroyWindow("截图");
}
}

热心网友 时间:2022-04-27 11:03

opencv的cvNamedeWindow创建的窗口有鼠标点击或者移动的回调函数,可以在这里面做
得到想要得到的矩形左上角和右下角两个点的坐标(这也是图片对象像素的相对指针),利用这两个点构造一个矩形,对远图像cvSetImageIOR就可以了,操作完别忘了cvReleaseIOR

热心网友 时间:2022-04-27 12:38

使用MFC做的界面 可以使用onleftbuttondown 和up获取鼠标点坐标,然后转化到图像坐标,就可以了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 支付宝车金融贷款还完,现已联系不上车金融客服,... Opencv 程序问题, cvStartFindContours函数。 opencv中有几个函数是什么意思? 支付宝车金融,车还在还贷期间能申请吗 我的支付宝车金融款都还完了,绿本一直不给怎么办? opencv 移动rect 着急用求各位懂的人帮忙!!! 支付宝借呗车金融为什么是微贷网打电话过来线下审... 刚接触opencv,请问Cvrect和Rect什么区别啊?cvres... 网贷逾期了,对已经抵押在支付宝车金融的车有影响吗? 图像处理 OpenCV 混合高斯背景模型的前景检测方法 opencv轮廓检测小程序调试出现的一点问题 有车就能贷款的app不看征信 利用opencv怎么分别获得图片中两个不相连的物体的... 支付宝车金融电话多少 求解opencv怎么画旋转一定角度的矩形呢? 支付宝还车贷怎么还详细步骤 opencv 取得轮廓的外界矩形后怎么得到这个外接矩形... 支付宝里车金融车抵押预估额度54000需要一次性全部... OPENCV,rects.push_back(mr);这句话是什么意思? 支付宝车金融还完了以后 需要做什么吗 绿本还没有... 你好!支付宝借呗车金融是正规的吗? opencv中有几个函数不懂是什么意思 车金融支付宝贷款结束怎么拿回绿本? C++ opencv有没有类似Matlab中图片点乘、点除的函数? 支付宝扫汽车金融贷款二维码是授权什么 动画片《西游记》主题歌的歌词是什么?(猴哥,猴哥,你真了不起……) 猴哥动画片《西游记》主题曲是什么? 三星手机充电没反应咋回事 三星手机充电没反应咋回事? 我的三星手机充电没反应 你好亲我的三星手机在使用过程中突然黑屏并且开不... 三星手机充电没有反应 三星手机充电没反应怎么回事 三星手机开不了机,充电也没反应。换电池也不行。 三星手机突然黑屏充电没反应? 三星手机插上充电器没反应是怎么回事 三星手机充不了电怎么回事? 为什么三星手机充电充不进去,而且开不了机充了电... 我的三星手机I9100电用完了怎么充电没反应? 为什么三星手机充电充不进去而且开不了机充了电也...