vc 图像分割 我想 读入一张图片,显示用鼠标 选中图片的 一个区域 对选中区域复制(剪切) 粘贴 出来请问如何实现 请给个例子 或代码 看看 谢谢大家 了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CxImage中有对应的实现,可以去下载看看 楼主 这个叫裁剪 不叫分割void CObjectDetctView::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CObjectDetctDoc* pDoc = GetDocument(); if(pDoc->m_ptrImage!=NULL) { CClientDC dc(this); OnPrepareDC(&dc); dc.DPtoLP(&point);//将屏幕设备坐标转化为逻辑坐标 dc.SelectStockObject(BLACK_PEN); dc.SelectStockObject(HOLLOW_BRUSH); if(point.x+pDoc->WIDTH>pDoc->m_ptrImage->width|| point.y+pDoc->HEIGHT>pDoc->m_ptrImage->height) { MessageBox("所选择的ROI区域已经超出图像范围,请重新选择!","提示",MB_OK); return; } else { //用矩形框标记模板图像在原图像中的位置 dc.Rectangle(point.x,point.y,point.x+pDoc->WIDTH,point.y+pDoc->HEIGHT); //设置原图像的ROI区域:设定模板图像大小和位置 cvSetImageROI(pDoc->m_ptrImage, cvRect(point.x,point.y,pDoc->WIDTH,pDoc->HEIGHT)); //创建模板图像 pDoc->m_roiImage=cvCreateImage(cvSize(pDoc->WIDTH,pDoc->HEIGHT), pDoc->m_ptrImage->depth,pDoc->m_ptrImage->nChannels); CvPoint2D32f temp; temp.x=(pDoc->WIDTH+1)/2; temp.y=(pDoc->HEIGHT+1)/2; //从原图像中读取模板图像 cvGetRectSubPix(pDoc->m_ptrImage, pDoc->m_roiImage, temp); cvNamedWindow("TemplateImage",1); cvShowImage("TemplateImage",pDoc->m_roiImage); //释放原图像的ROI区域 cvResetImageROI(pDoc->m_ptrImage); } } CScrollView::OnLButtonDown(nFlags, point);} 笔刷的算法 MFC开发一矢量图编辑器,有关内存问题 请问用regsvr32反注册ocx控件为什么失败? 请问MSDN的例子中有没有抓屏的程序 怎样才能显示gif动画 请教一个函数的用法 AVIStreamCreate 我用vc6.0写的dll在vb6.0中调用时为什么会出错? help me!CSocket的应用,谁有例子,让我see 一下,OK? 如何计算两个CTime时间之间的差值? 请问如何把JPG格式的扫描文档转换成WORD文档 请问VC6下没有设置断点仍然中断可能是什么情况? mfc中如何用opencver二值化图片?
void CObjectDetctView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CObjectDetctDoc* pDoc = GetDocument();
if(pDoc->m_ptrImage!=NULL)
{
CClientDC dc(this);
OnPrepareDC(&dc);
dc.DPtoLP(&point);//将屏幕设备坐标转化为逻辑坐标
dc.SelectStockObject(BLACK_PEN);
dc.SelectStockObject(HOLLOW_BRUSH); if(point.x+pDoc->WIDTH>pDoc->m_ptrImage->width||
point.y+pDoc->HEIGHT>pDoc->m_ptrImage->height)
{
MessageBox("所选择的ROI区域已经超出图像范围,请重新选择!","提示",MB_OK);
return;
}
else
{
//用矩形框标记模板图像在原图像中的位置
dc.Rectangle(point.x,point.y,point.x+pDoc->WIDTH,point.y+pDoc->HEIGHT); //设置原图像的ROI区域:设定模板图像大小和位置
cvSetImageROI(pDoc->m_ptrImage,
cvRect(point.x,point.y,pDoc->WIDTH,pDoc->HEIGHT)); //创建模板图像
pDoc->m_roiImage=cvCreateImage(cvSize(pDoc->WIDTH,pDoc->HEIGHT),
pDoc->m_ptrImage->depth,pDoc->m_ptrImage->nChannels); CvPoint2D32f temp;
temp.x=(pDoc->WIDTH+1)/2;
temp.y=(pDoc->HEIGHT+1)/2; //从原图像中读取模板图像
cvGetRectSubPix(pDoc->m_ptrImage, pDoc->m_roiImage, temp); cvNamedWindow("TemplateImage",1);
cvShowImage("TemplateImage",pDoc->m_roiImage);
//释放原图像的ROI区域
cvResetImageROI(pDoc->m_ptrImage);
}
}
CScrollView::OnLButtonDown(nFlags, point);
}