我想 读入一张图片,显示
用鼠标 选中图片的  一个区域      对选中区域复制(剪切) 粘贴 出来请问如何实现   请给个例子 或代码  看看  谢谢大家 了   

解决方案 »

  1.   

    CxImage中有对应的实现,可以去下载看看
      

  2.   

    楼主 这个叫裁剪 不叫分割
    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);
    }