簡體   English   中英

EmguCV 如何使用現有的墊子創建墊子?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM