Hi everyone,
An update on the situation:
1) bug reported for IPD.
2) workaround for my workflow.
1) See: http://forge.scilab.org/index.php/p/IPD/issues/1603/
Are the devs of IPD reading this mailing list (I know Allan used to
read it)?
I can give them a hand troubleshooting what's going on if they want.
2) I gave up on proper image processing in Scilab (ie with lots of bells
and whistles) and decided to support one image format (PPM as it's a
very simple format).
So now, I convert all the images I need to process to PPM (using
convert from ImageMagick) and load them in Scilab with the function below.
(hacked in an hour, so it's far from perfect, feedback is welcome)
function img=read_ppm_file(ppm_file)
//function to read ppm file P6 (binary RGB 8bit/channel)
//
// Typical file header:
//
// 1 P6
// 2 389 308
// 3 255
//
// Magic number P6
// white space (here CR or LF)
// Width whitespace Height
// White space (here CR/LF)
// Maximum value (here 255 mean 1 byte per pixel per channel)
// White space
// Height=H Width=W => H rows from top to bottom of W pixels, each
pixel a rgb triplet, each channel on one byte if MaxVal<=255.
//So starting from the end we should have 3*H*W bytes to read.
//getting file size in byte
[x, ierr] = fileinfo(ppm_file);
file_size=x(1);
//reading the header
fd=mopen(ppm_file,'r');
txt = mgetl(fd,3);// TODO : no exactly what's in the format
specification
mclose(fd)
magickN=txt(1);
maxval=eval(txt(3));
if magickN~="P6" then
warning("Cannot handle PPM files other than P6 (binary RGB file)");
elseif maxval > 255 then
warning("Cannot handle PPM files with channels encoded on more
than 1 byte");
else
//good to go P6 PPM file encoded with 1 byte per channel
//getting W & H
tok=tokens(txt(2));
W=eval(tok(1));//width of the image
H=eval(tok(2));//height of the image
//Now we need to read 3*H*W bytes from the end of the file
bytoread=3*H*W;
startpos=file_size-bytoread;
fd=mopen(ppm_file,'rb');
mseek(startpos,fd);
dat=mgeti(bytoread,'uc',fd);//raw data
mclose(fd);
end
//separating the channels
// TODO : can we get something more elegant than transpose & reverse
of 1st dim ?
r=matrix(dat(1:3:$),W,H).';
g=matrix(dat(2:3:$),W,H).';
b=matrix(dat(3:3:$),W,H).';
r=r($:-1:1,:);
g=g($:-1:1,:);
b=b($:-1:1,:);
// building the hypermatrix from the channels
// TODO : more elegant way to fill the image?
img=uint8(hypermat([H,W,3]));
img(:,:,1)=r;
img(:,:,2)=g;
img(:,:,3)=b;
endfunction
I hope someone might find it useful,
Antoine
Le 01/13/2016 11:20 AM, Philipp Mühlmann a écrit :
mh, I never additionally installed OpenCV to be able to use IPD...it
just worked "out of the box".
2016-01-13 9:38 GMT+01:00 <amonm...@laas.fr <mailto:amonm...@laas.fr>>:
Le 01/13/2016 08:34 AM, CHEZE David 227480 a écrit :
Same conclusion for me and also question reagrding scilab 6
Well, I use both scilab 5.5.X and 6.0.X but:
//scilab 6.0.X
--> atomsInstall('IPD')
atomsInstallList: The package IPD is not available
Antoine
David
*De :*users [mailto:users-boun...@lists.scilab.org] *De la part
de* Philipp Mühlmann
*Envoyé :* mardi 12 janvier 2016 20:11
*À :* Users mailing list for Scilab <users@lists.scilab.org>
<mailto:users@lists.scilab.org>
*Objet :* Re: [Scilab-users] An Image processing toolbox that *works*
Hello,
I've been using IPD and SIVP a lot with Scilab 5.5.1 and
5.4.1...on WinXP 32 bit and Win7 64 bit.
Both times with IPD 8.3.2-0
IPD would be my favourite.
Anybody uses IPD with Scilab 6?
Best regards,
Philipp
2016-01-12 13:43 GMT+01:00 Samuel Gougeon <sgoug...@free.fr
<mailto:sgoug...@free.fr>>:
Hello,
Le 12/01/2016 12:53, antoine.monmayr...@laas.fr
<mailto:antoine.monmayr...@laas.fr> a écrit :
Hi everyone,
This message is not a rant (but it could).
I am truly looking for an image processing toolbox that
works with current versions of Scilab and a decently
modern OS.
I tried every toolbox I've found but without success:
SIVP: requires an outdated version of libtiff that I
don't know how to install on my system.
IPD: does not seem to work properly: ReadImage fails:
Works for me with Scilab 5.5.2 / win7_x64 :
-->dir *.png
ans =
foo.png Google_logo.png ico.png scilab.png
-->atomsLoad IPD
Start IPD - Image Processing Design
Load macros
Load dependencies
Load gateways
Load help
Load demos
ans =
!IPD 8.3.2-0 allusers SCI\contrib\IPD\8.3.2-0 !
-->i = ReadImage("Google_logo.png");
-->size(i)
ans =
95. 275. 3.
Do you get an error whatever is the image you try to load?
You may report the error you get @
<http://forge.scilab.org/index.php/p/IPD/issues/>http://forge.scilab.org/index.php/p/IPD/issues/
+ posting the image triggering it.
Cheers
Samuel
_______________________________________________
users mailing list
users@lists.scilab.org <mailto:users@lists.scilab.org>
http://lists.scilab.org/mailman/listinfo/users
--
There we have the salad.
_______________________________________________
users mailing list
users@lists.scilab.org <mailto:users@lists.scilab.org>
http://lists.scilab.org/mailman/listinfo/users
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++ Antoine
Monmayrant LAAS - CNRS 7 avenue du Colonel Roche BP 54200 31031
TOULOUSE Cedex 4 FRANCE Tel:+33 5 61 33 64 59
<tel:%2B33%205%2061%2033%2064%2059>email :
antoine.monmayr...@laas.fr <mailto:antoine.monmayr...@laas.fr>
permanent email : antoine.monmayr...@polytechnique.org
<mailto:antoine.monmayr...@polytechnique.org>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
_______________________________________________
users mailing list
users@lists.scilab.org <mailto:users@lists.scilab.org>
http://lists.scilab.org/mailman/listinfo/users
--
There we have the salad.
--
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antoine Monmayrant LAAS - CNRS
7 avenue du Colonel Roche
BP 54200
31031 TOULOUSE Cedex 4
FRANCE
Tel:+33 5 61 33 64 59
email : antoine.monmayr...@laas.fr
permanent email : antoine.monmayr...@polytechnique.org
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users