【**
以下是key code:
1. 在oninitdialog初始化函式裡新增**
[cpp]view plain
copy
namedwindow(
"view"
,window_autosize);
hwnd
hwnd = (
hwnd
) cvgetwindowhandle(
"view"
);
hwnd
hparent = ::getparent(hwnd);
::setparent(hwnd, getdlgitem(idc_static_pic)->m_hwnd);
::showwindow(hparent, sw_hide);
其中idc_static_pic是picture control圖形控制項的id;
2. 定義開啟按鈕事件
[cpp]view plain
copy
cstring picpath;
//定義路徑變數
cfiledialog dlg(true, null, null, ofn_hidereadonly | ofn_overwriteprompt|ofn_allowmultiselect,
null, this
);
//選擇檔案對話方塊
if(dlg.domodal() == idok)
//cstring to string 使用這個方法記得字符集選用「使用多位元組字元」,不然會報錯
string picpath=picpath.getbuffer(0);
mat image=imread(picpath);
mat imagedst;
//以下操作獲取圖形控制項尺寸並以此改變尺寸
crect rect;
getdlgitem(idc_static_pic)->getclientrect(&rect);
rect dst(rect.left,rect.top,rect.right,rect.bottom);
resize(image,imagedst,cv::size(rect.width(),rect.height()));
imshow("view"
,imagedst);
適應圖形控制項的顯示效果:
注: picture control控制項型別不需要必須是矩形(rectangle),使用預設的型別幀(frame)也可以正常顯示。
使用 vector儲存mat
void get video infor string video 這樣儲存,會出現vector中所有的指標都是指向的frame所指向的資料。也就是 程式執行後,frames中所有的元素指向的都capture最後一幀。可以這麼理解 1,vector中儲存的都指標,push back儲存指標。2,ca...
Mat 物件的使用
部分複製 一般情況下只會複製 mat 物件的頭和指標部分,不會複製資料部分 mat a imread src imagse mat b a 只複製 完全複製 如果把mat物件的頭部和資料部分一起複製,可以通過以下兩個api實現.mat f a.cone mat g a.copyto g mat物件使...
三 Mat類的使用
mat是一類,由兩個資料部分組成 矩陣頭 包含矩陣尺寸,儲存方法,儲存位址等 和乙個儲存所有畫素值的矩陣 可以是不同維度的矩陣 乙個儲存了所有畫素值,所以,不應該進行大的複製。opencv有個機制,針對同一張影象,讓每個mat有不同的矩陣頭,但是有相同的畫素矩陣,及共享乙個矩陣。這樣的做法,也會導致...