Just starting out? Need help? Post your questions and find answers here.
-
LiK137
- Enthusiast
- Posts: 279
- Joined: Wed Jun 23, 2010 5:13 pm
Post
by LiK137 »
Hi,
Thanks to JHPJHP for posting OpenCV2PBImage_ASM
But is there reverse procedure for converting to OpenCV image?
Code: Select all
If pbimage
UseJPEGImageEncoder()
*buffer = EncodeImage(pbimage, #PB_ImagePlugin_JPEG)
Define *mat.CvMat = cvCreateMatHeader(ImageHeight(pbimage), ImageWidth(pbimage), CV_MAKETYPE(#CV_32F, 1))
cvSetData(*mat, *buffer, #CV_AUTOSTEP)
Define *image.IplImage = cvDecodeImage(*mat, #CV_LOAD_IMAGE_COLOR)
FreeMemory(*buffer)
FreeImage(pbimage)
EndIf
is unsuccessful
-
JHPJHP
- Addict
- Posts: 2129
- Joined: Sat Oct 09, 2010 3:47 am
-
Contact:
Post
by JHPJHP »
Hi LiK137,
See the following examples:
-
cv_pb_image_1.pb
-
cv_pb_image_2.pb
Confirm that the PB image is valid and the Decoder is correct:
Code: Select all
;...
Pattern.s = "All Images (*.*)|*.bmp;*.dib;*.jpeg;*.jpg;*.jpe;*.jp2;*.png;*.pbm;*.pgm;*.ppm;*.sr;*.ras;*.tiff;*.tif" +
"|Windows Bitmaps (*.bmp;*.dib)|*.bmp;*.dib|JPEG Files (*.jpeg;*.jpg;*.jpe)|*.jpeg;*.jpg;*.jpe|JPEG 2000 Files (*.jp2)|*.jp2" +
"|Portable Network Graphics (*.png)|*.png|Portable Image Format (*.pbm;*.pgm;*.ppm)|*.pbm;*.pgm;*.ppm" +
"|Sun Rasters (*.sr;*.ras)|*.sr;*.ras|TIFF Files (*.tiff;*.tif)|*.tiff;*.tif"
ImageFile.s = OpenFileRequester("Choose an image file", "", Pattern, 0)
If FileSize(ImageFile) > 0
Select LCase(GetExtensionPart(ImageFile))
Case "jpeg", "jpg", "jpe"
UseJPEGImageDecoder()
Case "png"
UsePNGImageDecoder()
Case "tiff", "tif"
UseTIFFImageDecoder()
EndSelect
UseJPEGImageEncoder()
pbimage = LoadImage(#PB_Any, ImageFile)
If IsImage(pbimage)
*buffer = EncodeImage(pbimage, #PB_ImagePlugin_JPEG)
*mat.CvMat = cvCreateMatHeader(ImageHeight(pbimage), ImageWidth(pbimage), CV_MAKETYPE(#CV_32F, 1))
cvSetData(*mat, *buffer, #CV_AUTOSTEP)
*image.IplImage = cvDecodeImage(*mat, #CV_LOAD_IMAGE_COLOR)
EndIf
EndIf
;...
NB*: The Procedure
OpenCV2PBImage_ASM was provided by
wilbert.
-
LiK137
- Enthusiast
- Posts: 279
- Joined: Wed Jun 23, 2010 5:13 pm
Post
by LiK137 »
With the help and hint of JHPJHP (Big thanx to him)
Code: Select all
Procedure pb2CVIplImage(pbImage.i)
If IsImage(pbImage)
*buffer = EncodeImage(pbImage, #PB_ImagePlugin_JPEG)
*mat.CvMat = cvCreateMatHeader(ImageHeight(pbImage), ImageWidth(pbImage), CV_MAKETYPE(#CV_32F, 1))
cvSetData(*mat, *buffer, #CV_AUTOSTEP)
*image.IplImage = cvDecodeImage(*mat, #CV_LOAD_IMAGE_COLOR)
FreeMemory(*buffer)
cvReleaseMat(@*mat)
cvReleaseImage(@*image)
EndIf
EndProcedure
Procedure pb2CVIplImage_1(pbImage)
If IsImage(pbImage)
PokeL(@*size, ImageWidth(pbImage)) : PokeL(@*size + 4, ImageHeight(pbImage))
*image.IplImage = cvCreateImage(*size, #IPL_DEPTH_8U, 3)
If StartDrawing(ImageOutput(pbImage))
*image\imageData = DrawingBuffer()
StopDrawing()
EndIf
cvFlip(*image, #Null, 0)
cvReleaseImage(@*image)
EndIf
EndProcedure