ruby 图像模糊挑战的重构代码(包括曼哈顿距离)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 图像模糊挑战的重构代码(包括曼哈顿距离)相关的知识,希望对你有一定的参考价值。
class Image
attr_accessor :array
def initialize(array)
@array = array
end
def blur(distance = 1)
distance.times do
transform
end
end
def output_image
@array.each {|item| puts "#{item.join()}"}
end
private
def transform
# length of one secondary array
width = array[0].length
# number of secondary arrays (rows)
height = array.length
ones_array = []
array.each_with_index do |row, y|
row.each_with_index do |value, x|
ones_array << [x, y] if value == 1
end
end
ones_array.each do |coordinate|
x, y = coordinate
array[y][x + 1] = 1 unless (x + 1 >= width)
array[y][x - 1] = 1 unless (x - 1 < 0)
array[y + 1][x] = 1 unless (y + 1 >= height)
array[y - 1][x] = 1 unless (y - 1 < 0)
end
end
end
image = Image.new([
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
])
image.blur(3)
image.output_image
以上是关于ruby 图像模糊挑战的重构代码(包括曼哈顿距离)的主要内容,如果未能解决你的问题,请参考以下文章
ruby 用于重构面包店挑战的辅导/ GPS资源。可能的解决方案(高级)
Wannafly挑战赛18 C - 异或和
[ CS231n ] 图像分类
matlab中如何用代码表示两个数之间的街区(曼哈顿)距离
Python编程题:编程求两点之间的曼哈顿距离?
机器学习中“距离与相似度”计算汇总