Bitmap/Histogram: Difference between revisions
Content added Content deleted
(→{{header|Vedit macro language}}: Added zkl) |
m (→{{header|zkl}}: function movement) |
||
Line 1,186: | Line 1,186: | ||
from |
from |
||
}</lang> |
}</lang> |
||
<lang zkl> |
<lang zkl>img:=PPM.readPPMFile("lenaGrey.ppm"); // a grey scale image |
||
image:=File(f:=fileName,"rb").read(); f.close(); |
|||
image.readln(2); |
|||
w,h:=image.readln().split().apply("toInt"); |
|||
image.del(0,image.find("\n255\n") + 5);// del PPM header |
|||
ppm:=PPM(w,h); |
|||
ppm.data.clear(); // gonna write file image data |
|||
// image is stored upside down |
|||
[h-1..0, -1].pump(ppm.data,'wrap(h){ image.seek(3*h*w); image.read(3*w) }); |
|||
ppm |
|||
} |
|||
img:=readPPMFile("lenaGrey.ppm"); // a grey scale image |
|||
median:=histogramMedian(histogram(img)); |
median:=histogramMedian(histogram(img)); |
||
median.println(); |
median.println(); |
||
Line 1,208: | Line 1,195: | ||
img.data.pump(0,bw.data.clear(),'wrap(c){ if(c>median) 0xff else 0 }); |
img.data.pump(0,bw.data.clear(),'wrap(c){ if(c>median) 0xff else 0 }); |
||
bw.write(File("foo.ppm","wb"));</lang> |
bw.write(File("foo.ppm","wb"));</lang> |
||
{{out}}<pre>101</pre> |
{{out}}<pre>101</pre> |
||
http://home.comcast.net/~zenkinetic/Images/lenaBW.jpg |
http://home.comcast.net/~zenkinetic/Images/lenaBW.jpg |
||
{{omit from|PARI/GP}} |
{{omit from|PARI/GP}} |