[英]EmguCV How to create a Mat using an existing Mat?
我是EmguCV
的新手,正在嘗試做一個簡單的任務; 使用現有的 Mat 實例化一個Mat
。 這是代碼片段:
Mat color = CvInoke.Imread("000.bmp"); //512x512 3 channel image
Mat color2 = new Mat(512, 512, Emgu.CV.CvEnum.DepthType.Cv8U, 3, color.Ptr, 512 * 3);
CvInvoke.Imshow("Color2", color2);
CvInvoke.WaitKey(0);
它顯示損壞的圖像。 似乎 step 和 channel 參數不正確。 我還嘗試了具有相同結果的灰色圖像(3 更改為 1)。
有什么建議我做錯了嗎?
根據EmguCV Documentation ,此命令不會將源Mat
復制到目標Mat
,它僅Create a Mat header from existing data ,也不分配矩陣數據。 相反,它只是初始化了指向指定數據的矩陣 header,這意味着沒有數據被復制。
如果你想用舊的日期創建一個新的Mat
,你可以使用這個:
Mat color2 = new Mat();
color.CopyTo(color2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.