外廓的大小跟原来图片不一样啊这这个是啥情况?求指导!

轮廓的大小跟原来图片不一样啊,这这个是啥情况???求指导!!!!





void CMyGraphCuts01View::OnGraphcut()
{
BYTE* res = m_graphModel.doCut();
m_originalBuffer.drawDC(m_state1Buffer.GetDC(), 0, 0);
m_originalBuffer.drawDC(m_state2Buffer.GetDC(), 0, 0);

BYTE* res1 = new BYTE[m_width*m_height];
openContour(res, m_width, m_height, res1);


cv::Mat img_contour(cv::Size(m_width, m_height), CV_8UC1);


for (int i=0;i<m_height;i++)
for (int j=0; j<m_width;j++)
if (res1[i*m_width+j] == 1) 
{
img_contour.at<char>(i,j) = res1[i*m_width+j];//这里输出轮廓!!
m_state1Buffer.setPixel(j,i,0,RGB(240,240,240));
m_state2Buffer.setPixel(j,i,0,RGB(0,0,0));
}

//2014.7.1增加显示轮廓信息,轮廓跟原图像大小不一样
char *imageName = "shiter";
cv::namedWindow( imageName,CV_WINDOW_NORMAL);// Create a window for display.
cv::imshow(imageName,img_contour);

delete [] res1;


//2014.7.1增加状态栏信息
CString str;  
str.Format(("啦啦啦"));//以一定的格式输出   

//GetParent()->GetDescendantWindow(AFX_IDW_STATUS_BAR)->SetWindowText(str);//在状态栏上面设置文本信息  
((CMainFrame*)GetParent())->m_wndStatusBar.SetWindowText(str);//在状态栏上面设置文本信息 


Invalidate(0);
}


------解决方案--------------------
你拉伸显示了吧,所以就不一样
------解决方案--------------------
其中的m_width, m_height这两个变量是否有问题呢?
------解决方案--------------------
目测你的"shiter"窗口和“swanjpg”窗口大小就不一样,让其等大试试看
------解决方案--------------------
引用:
Quote: 引用:

目测你的"shiter"窗口和“swanjpg”窗口大小就不一样,让其等大试试看



哎!!!!!!


很奇怪哎,

opencv的窗口难道显示要设置默认大小么?没有看到过啊。。。。


opencv 的窗口确实是可以拉伸的,也就是那个轮廓的窗口。。


这个应该是有地方可以设置的。。。。


那你试着调整opencv 的窗口,MoveWindow一下试试
------解决方案--------------------
把你轮廓的图片保存下来,看看宽高如何??