Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
36
Task/Hough-transform/Sidef/hough-transform.sidef
Normal file
36
Task/Hough-transform/Sidef/hough-transform.sidef
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
require('Imager')
|
||||
|
||||
func hough(im, width=460, height=360) {
|
||||
|
||||
height = 2*floor(height / 2)
|
||||
|
||||
var xsize = im.getwidth
|
||||
var ysize = im.getheight
|
||||
|
||||
var ht = %s|Imager|.new(xsize => width, ysize => height)
|
||||
var canvas = height.of { width.of(255) }
|
||||
|
||||
ht.box(filled => true, color => 'white')
|
||||
|
||||
var rmax = hypot(xsize, ysize)
|
||||
var dr = 2*(rmax / height)
|
||||
var dth = (Num.pi / width)
|
||||
|
||||
for y,x in (^ysize ~X ^xsize) {
|
||||
var col = im.getpixel(x => x, y => y)
|
||||
var (r,g,b) = col.rgba
|
||||
(r==255 && g==255 && b==255) && next
|
||||
for k in ^width {
|
||||
var th = dth*k
|
||||
var r = (x*cos(th) + y*sin(th))
|
||||
var iry = (height/2 + int(r/dr + 0.5))
|
||||
ht.setpixel(x => k, y => iry, color => 3.of(--canvas[iry][k]))
|
||||
}
|
||||
}
|
||||
|
||||
return ht
|
||||
}
|
||||
|
||||
var img = %s|Imager|.new(file => 'Pentagon.png')
|
||||
var ht = hough(img)
|
||||
ht.write(file => 'Hough transform.png')
|
||||
Loading…
Add table
Add a link
Reference in a new issue