User talk:BytePilot: Difference between revisions
From London Hackspace Wiki
No edit summary |
No edit summary |
||
Line 73: | Line 73: | ||
</pre> | </pre> | ||
? | ? | ||
<hr> | |||
yes - seems to need to be "All", "And", "Whatever". Still, here's one that kinds does what we want... | |||
http://hack.rs/cgi-bin/threshold_grayscale.pl | |||
<pre> | |||
#!/usr/bin/perl -w | |||
use strict; | |||
use CGI; | |||
use CGI::Carp qw(fatalsToBrowser warningsToBrowser); | |||
use List::Util qw(max min); | |||
my $q = CGI->new(); | |||
print $q->header; | |||
print $q->start_html; | |||
print $q->p("this is a thing for doing threshholding"); | |||
print $q->p("<small>or possibly <i>thresholding</i>?</small>"); | |||
print $q->start_form( -enctype => "multipart/form-data" ); | |||
print $q->p("file"); | |||
print $q->filefield('uploaded_file'); | |||
print $q->submit(); | |||
print $q->end_form; | |||
# do we have an upload? | |||
my $filehandle = $q->upload('uploaded_file'); | |||
if (defined $filehandle) { | |||
# do shit | |||
print $q->p("I'm doing shit"); | |||
# no, actually do shit | |||
my $filename = $q->param('uploaded_file'); | |||
my $tempfile = $q->tmpFileName($filename); | |||
foreach my $i (0 .. 7) { | |||
my $n = ((2 ** (8 + $i)) / 2**16 )*100; #as a percentage | |||
my @ar = ("gm", | |||
# "convert", "-type", "grayscale", "-colors", 8, "-threshold", 12.5*$i ."%", | |||
"convert", "-type", "grayscale", "-operator", | |||
"Gray", "And", $n ."%", | |||
"-threshold", max($n -1, 0) ."%", | |||
$tempfile, | |||
"/var/www/threshold_output/$filename".$i ); | |||
print $q->p("$i : " . join " ", @ar); | |||
system(@ar) == 0 or carp "system call failed: $?"; #safer than passing a string to system() | |||
print $q->img({src => "/threshold_output/$filename".$i}); | |||
} | |||
} | |||
print $q->end_html; | |||
</pre> | |||
i converted the raw values to percentages of a max because it wasn't working the other way. I'm not clear on the bit depth of the greyscale image. tried setting it with -depth but still no joy. still, this version is kind of working as it is. | |||
--[[User:AndyE|AndyE]] 15:12, 12 January 2011 (UTC) |
Revision as of 15:12, 12 January 2011
well I've done that, but the output is not what we want.
http://hack.rs/cgi-bin/threshold_bitwise.pl
#!/usr/bin/perl -w use strict; use CGI; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); my $q = CGI->new(); print $q->header; print $q->start_html; print $q->p("this is a thing for doing threshholding"); print $q->p("<small>or possibly <i>thresholding</i>?</small>"); print $q->start_form( -enctype => "multipart/form-data" ); print $q->p("file"); print $q->filefield('uploaded_file'); print $q->submit(); print $q->end_form; # do we have an upload? my $filehandle = $q->upload('uploaded_file'); if (defined $filehandle) { # do shit print $q->p("I'm doing shit"); # no, actually do shit my $filename = $q->param('uploaded_file'); my $tempfile = $q->tmpFileName($filename); foreach my $i (0 .. 7) { my $n = 2 ** ($i + 8); my @ar = ("gm", "convert", "-type", "grayscale", "-colors", 256, "-operator", "ALL AND $n", "-threshold", $n-1, $tempfile, "/var/www/threshold_output/$filename".$i ); print $q->p("$i : $n : " . join " ", @ar); system(@ar) == 0 or carp "system call failed: $?"; #safer than passing a string to system() print $q->img({src => "/threshold_output/$filename".$i}); } } print $q->end_html;
I tried doing just the "-operator ALL AND $n" part by itself, it didn't seem to do anything...
--AndyE 14:16, 12 January 2011 (UTC)
Possible sytax error ?
"convert", "-type", "grayscale", "-colors", 256, "-operator", "ALL AND $n", "-threshold", $n-1,
Should perhaps be
"convert", "-type", "grayscale", "-colors", 256, "-operator", "ALL AND", $n, "-threshold", $n-1,
?
yes - seems to need to be "All", "And", "Whatever". Still, here's one that kinds does what we want...
http://hack.rs/cgi-bin/threshold_grayscale.pl
#!/usr/bin/perl -w use strict; use CGI; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use List::Util qw(max min); my $q = CGI->new(); print $q->header; print $q->start_html; print $q->p("this is a thing for doing threshholding"); print $q->p("<small>or possibly <i>thresholding</i>?</small>"); print $q->start_form( -enctype => "multipart/form-data" ); print $q->p("file"); print $q->filefield('uploaded_file'); print $q->submit(); print $q->end_form; # do we have an upload? my $filehandle = $q->upload('uploaded_file'); if (defined $filehandle) { # do shit print $q->p("I'm doing shit"); # no, actually do shit my $filename = $q->param('uploaded_file'); my $tempfile = $q->tmpFileName($filename); foreach my $i (0 .. 7) { my $n = ((2 ** (8 + $i)) / 2**16 )*100; #as a percentage my @ar = ("gm", # "convert", "-type", "grayscale", "-colors", 8, "-threshold", 12.5*$i ."%", "convert", "-type", "grayscale", "-operator", "Gray", "And", $n ."%", "-threshold", max($n -1, 0) ."%", $tempfile, "/var/www/threshold_output/$filename".$i ); print $q->p("$i : " . join " ", @ar); system(@ar) == 0 or carp "system call failed: $?"; #safer than passing a string to system() print $q->img({src => "/threshold_output/$filename".$i}); } } print $q->end_html;
i converted the raw values to percentages of a max because it wasn't working the other way. I'm not clear on the bit depth of the greyscale image. tried setting it with -depth but still no joy. still, this version is kind of working as it is.
--AndyE 15:12, 12 January 2011 (UTC)