Reputation: 699
I was new to Emgu Cv and i was wondering if someone could let me know how i change Emgu.Cv.Image to System.Image?If there is a need for further explanation, let me know and i will do it.The language i am using is C#.
Upvotes: 5
Views: 16620
Reputation:
The accepted answer is outdated as newer versions of Emgu CV have been released where the Image<Bgr, byte>
object does not have a ToBitmap()
method. To convert an instance of Image<Bgr, byte>
to Bitmap
object then you need to get a byte array from the image and then use the byte array to build a memory stream object then pass the memory stream object to the Bitmap constructor overload that takes a Memory Stream object parameter.
//load an image into an Image<Byte, byte> object
var image = new Image<Bgr, byte>("file.png");
//get the jpeg representation of the image
var arr = image.ToJpegData(95);
//get a memory stream out of the byte array
var stream = new MemoryStream(arr) ;
//pass the memory stream to the bitmap ctor
var bitmap = new Bitmap(stream) ;
//TO DO with bitmap
Upvotes: 0
Reputation: 26259
You can just use the ToImage()
method to get a System.Drawing.Bitmap
(which is a derived class of System.Drawing.Image
), so something like this
// create an Emgu image of 400x200 filled with Blue color
Image<Bgr, Byte> img = new Image<Bgr, byte>(400, 200, new Bgr(255, 0, 0));
// copy to a .NET image
System.Drawing.Image pMyImage = img.ToBitmap();
Is that what you mean?
Upvotes: 5