ssimsort 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +18 -0
  3. data/bin/ssimsort +7 -0
  4. data/lib/array.rb +16 -0
  5. data/lib/main.rb +51 -0
  6. data/pics/2013-01-06-192950.jpg +0 -0
  7. data/pics/2013-01-06-192955.jpg +0 -0
  8. data/pics/2013-01-06-225315.jpg +0 -0
  9. data/pics/2013-01-06-225325.jpg +0 -0
  10. data/pics/2013-01-06-225340.jpg +0 -0
  11. data/pics/2013-01-10-151030.jpg +0 -0
  12. data/pics/2013-01-10-151057.jpg +0 -0
  13. data/pics/2013-01-10-151318.jpg +0 -0
  14. data/pics/2013-01-10-151329.jpg +0 -0
  15. data/pics/2013-01-10-151333.jpg +0 -0
  16. data/pics/2013-01-10-151338.jpg +0 -0
  17. data/pics/2013-01-10-151343.jpg +0 -0
  18. data/pics/2013-01-10-151355.jpg +0 -0
  19. data/pics/2013-01-10-151359.jpg +0 -0
  20. data/pics/2013-01-10-151406.jpg +0 -0
  21. data/pics/2013-01-10-151411.jpg +0 -0
  22. data/pics/2013-01-10-151417.jpg +0 -0
  23. data/pics/2013-01-10-151426.jpg +0 -0
  24. data/pics/2013-01-10-151430.jpg +0 -0
  25. data/pics/2013-01-10-151434.jpg +0 -0
  26. data/pics/2013-01-14-172946.jpg +0 -0
  27. data/pics/2013-01-14-173030.jpg +0 -0
  28. data/pics/2013-01-14-173036.jpg +0 -0
  29. data/pics/2013-01-14-173044.jpg +0 -0
  30. data/pics/2013-01-14-173101.jpg +0 -0
  31. data/pics/2013-01-14-173112.jpg +0 -0
  32. data/pics/2013-01-14-173123.jpg +0 -0
  33. data/pics/2013-01-14-173144.jpg +0 -0
  34. data/pics/2013-01-14-173203.jpg +0 -0
  35. data/pics/2013-01-14-173210.jpg +0 -0
  36. data/pics/2013-01-14-173217.jpg +0 -0
  37. data/pics/2013-01-14-173222.jpg +0 -0
  38. data/pics/2013-01-14-173227.jpg +0 -0
  39. data/pics/2013-01-14-173231.jpg +0 -0
  40. data/pics/2013-01-14-173237.jpg +0 -0
  41. data/pics/2013-02-17-133343.jpg +0 -0
  42. data/pics/2013-02-17-133349.jpg +0 -0
  43. data/pics/2013-02-17-235428.jpg +0 -0
  44. data/pics/2013-02-17-235446.jpg +0 -0
  45. data/pics/2013-02-22-161810.jpg +0 -0
  46. data/pics/2013-02-22-161816.jpg +0 -0
  47. data/pics/2013-03-22-190446.jpg +0 -0
  48. data/pics/2013-03-22-190459.jpg +0 -0
  49. data/pics/2013-03-22-190505.jpg +0 -0
  50. data/pics/2013-03-22-190523.jpg +0 -0
  51. data/pics/2013-03-22-190528.jpg +0 -0
  52. data/pics/2013-03-22-190532.jpg +0 -0
  53. data/pics/2013-03-22-190538.jpg +0 -0
  54. data/pics/2013-03-22-190545.jpg +0 -0
  55. data/pics/2013-03-22-190549.jpg +0 -0
  56. data/pics/2013-03-22-190554.jpg +0 -0
  57. data/pics/2013-03-22-190558.jpg +0 -0
  58. data/pics/2013-03-22-190602.jpg +0 -0
  59. data/pics/2013-03-22-190614.jpg +0 -0
  60. data/pics/2013-03-22-191027.jpg +0 -0
  61. data/pics/2013-03-22-191040.jpg +0 -0
  62. data/pics/2013-03-22-191110.jpg +0 -0
  63. data/pics/2013-03-22-191117.jpg +0 -0
  64. data/pics/2013-03-22-191128.jpg +0 -0
  65. data/pics/2013-03-22-191134.jpg +0 -0
  66. data/pics/2013-03-24-012428.jpg +0 -0
  67. data/pics/2013-03-24-012443.jpg +0 -0
  68. data/pics/2013-04-07-120046.jpg +0 -0
  69. data/pics/2013-04-07-120106.jpg +0 -0
  70. data/pics/2013-04-16-190532.jpg +0 -0
  71. data/pics/2013-04-16-190538.jpg +0 -0
  72. data/pics/2013-04-16-190557.jpg +0 -0
  73. data/pics/2013-04-16-190612.jpg +0 -0
  74. data/pics/2013-04-16-193452.jpg +0 -0
  75. data/pics/2013-04-16-193504.jpg +0 -0
  76. data/pics/2013-04-16-193510.jpg +0 -0
  77. data/pics/2013-04-16-193521.jpg +0 -0
  78. data/pics/2013-04-16-193527.jpg +0 -0
  79. data/pics/2013-04-16-193534.jpg +0 -0
  80. data/pics/2013-04-18-092747.jpg +0 -0
  81. data/pics/2013-04-18-161934.jpg +0 -0
  82. data/pics/2013-04-19-190112.jpg +0 -0
  83. data/pics/2013-04-19-190118.jpg +0 -0
  84. data/pics/2013-04-19-190127.jpg +0 -0
  85. data/pics/2013-04-19-190132.jpg +0 -0
  86. data/pics/2013-04-19-190138.jpg +0 -0
  87. data/pics/2013-04-19-190143.jpg +0 -0
  88. data/pics/2013-04-19-190201.jpg +0 -0
  89. data/pics/2013-04-19-190213.jpg +0 -0
  90. data/pics/2013-04-19-190218.jpg +0 -0
  91. data/pics/2013-04-19-190227.jpg +0 -0
  92. data/pics/2013-04-19-190235.jpg +0 -0
  93. data/pics/2013-04-24-093729.jpg +0 -0
  94. data/pics/2013-04-24-093735.jpg +0 -0
  95. data/pics/2013-04-24-093740.jpg +0 -0
  96. data/pics/2013-05-02-094521.jpg +0 -0
  97. data/pics/2013-05-02-102928.jpg +0 -0
  98. data/pics/2013-05-02-102940.jpg +0 -0
  99. data/pics/2013-05-02-102947.jpg +0 -0
  100. data/pics/2013-05-07-182548.jpg +0 -0
  101. data/pics/2013-05-07-182555.jpg +0 -0
  102. data/pics/2013-05-07-182717.jpg +0 -0
  103. data/pics/2013-05-07-182723.jpg +0 -0
  104. data/pics/2013-05-07-182812.jpg +0 -0
  105. data/pics/2013-05-07-182834.jpg +0 -0
  106. data/pics/2013-05-07-183013.jpg +0 -0
  107. data/pics/2013-05-07-183018.jpg +0 -0
  108. data/pics/2013-05-07-183026.jpg +0 -0
  109. data/pics/2013-05-07-183058.jpg +0 -0
  110. data/pics/2013-05-10-215249.jpg +0 -0
  111. data/pics/2013-05-10-215258.jpg +0 -0
  112. data/pics/2013-06-05-014136.jpg +0 -0
  113. data/pics/2013-06-05-014156.jpg +0 -0
  114. data/pics/2013-06-05-014201.jpg +0 -0
  115. data/pics/2013-06-05-014206.jpg +0 -0
  116. data/pics/2013-06-05-014220.jpg +0 -0
  117. data/pics/2013-06-05-014240.jpg +0 -0
  118. data/pics/2013-06-05-014244.jpg +0 -0
  119. data/pics/2013-06-05-014251.jpg +0 -0
  120. data/pics/2013-06-05-014259.jpg +0 -0
  121. data/pics/2013-06-05-014306.jpg +0 -0
  122. data/pics/2013-06-05-014511.jpg +0 -0
  123. data/pics/2013-06-05-014516.jpg +0 -0
  124. data/pics/2013-06-05-014521.jpg +0 -0
  125. data/pics/2013-06-05-014527.jpg +0 -0
  126. data/pics/2013-06-05-014532.jpg +0 -0
  127. data/pics/2013-06-05-014545.jpg +0 -0
  128. data/pics/2013-06-05-014550.jpg +0 -0
  129. data/pics/2013-06-05-014603.jpg +0 -0
  130. data/pics/2013-06-05-014643.jpg +0 -0
  131. data/pics/2013-06-05-014649.jpg +0 -0
  132. data/pics/2013-06-05-014655.jpg +0 -0
  133. data/pics/2013-06-05-014703.jpg +0 -0
  134. data/pics/2013-06-05-014710.jpg +0 -0
  135. data/pics/2013-07-03-204458.jpg +0 -0
  136. data/pics/2013-07-03-204526.jpg +0 -0
  137. data/pics/2013-07-03-204820.jpg +0 -0
  138. data/pics/2013-07-03-204835.jpg +0 -0
  139. data/pics/2013-07-09-011236.jpg +0 -0
  140. data/pics/2013-07-09-011250.jpg +0 -0
  141. data/pics/2013-07-17-103839.jpg +0 -0
  142. data/pics/2013-07-17-103855.jpg +0 -0
  143. data/pics/2013-07-17-105643.jpg +0 -0
  144. data/pics/2013-07-17-110042.jpg +0 -0
  145. data/pics/2013-07-17-110347.jpg +0 -0
  146. data/pics/2013-07-17-110406.jpg +0 -0
  147. data/pics/2013-07-17-185222.jpg +0 -0
  148. data/pics/2013-07-29-201944.jpg +0 -0
  149. data/pics/2013-07-31-022916.jpg +0 -0
  150. data/pics/2013-08-01-082013.jpg +0 -0
  151. data/pics/2013-08-02-105438.jpg +0 -0
  152. data/pics/2013-08-02-105443.jpg +0 -0
  153. data/pics/2013-08-02-105449.jpg +0 -0
  154. data/pics/2013-08-02-170205.jpg +0 -0
  155. data/pics/2013-08-02-170547.jpg +0 -0
  156. data/pics/2013-08-02-170555.jpg +0 -0
  157. data/pics/2013-08-05-010634.jpg +0 -0
  158. data/pics/2013-08-05-010643.jpg +0 -0
  159. data/pics/2013-08-05-010652.jpg +0 -0
  160. data/pics/2013-08-05-010658.jpg +0 -0
  161. data/pics/2013-08-05-010705.jpg +0 -0
  162. data/pics/2013-08-06-143841.jpg +0 -0
  163. data/pics/2013-08-06-144418.jpg +0 -0
  164. data/pics/2013-08-06-144428.jpg +0 -0
  165. data/pics/2013-08-06-144443.jpg +0 -0
  166. data/pics/2013-08-06-144525.jpg +0 -0
  167. data/pics/2013-08-09-161656.jpg +0 -0
  168. data/pics/2013-08-09-161702.jpg +0 -0
  169. data/pics/2013-08-13-155524.jpg +0 -0
  170. data/pics/2013-08-21-231609.jpg +0 -0
  171. data/pics/2013-08-22-230303.jpg +0 -0
  172. data/pics/2013-08-22-230310.jpg +0 -0
  173. data/pics/2013-08-23-110559.jpg +0 -0
  174. data/pics/2013-09-04-121650.jpg +0 -0
  175. data/pics/2013-09-04-121657.jpg +0 -0
  176. data/pics/2013-09-04-121713.jpg +0 -0
  177. data/pics/2013-09-04-121758.jpg +0 -0
  178. data/pics/2013-09-04-121816.jpg +0 -0
  179. data/pics/2013-09-04-121839.jpg +0 -0
  180. data/pics/2013-09-05-152750.jpg +0 -0
  181. data/pics/2013-09-05-152829.jpg +0 -0
  182. data/pics/2013-09-05-152846.jpg +0 -0
  183. data/pics/2013-09-15-233945.jpg +0 -0
  184. data/pics/2013-09-15-234710.jpg +0 -0
  185. data/pics/2013-09-15-235245.jpg +0 -0
  186. data/pics/2013-09-16-000203.jpg +0 -0
  187. data/pics/2013-09-16-000207.jpg +0 -0
  188. data/pics/2013-09-16-000215.jpg +0 -0
  189. data/pics/2013-09-16-001005.jpg +0 -0
  190. data/pics/2013-09-16-001515.jpg +0 -0
  191. data/pics/2013-09-16-003202.jpg +0 -0
  192. data/pics/2013-09-18-115403 (1).jpg +0 -0
  193. data/pics/2013-09-18-115403.jpg +0 -0
  194. data/pics/2013-09-18-115404 (1).jpg +0 -0
  195. data/pics/2013-09-18-115404.jpg +0 -0
  196. data/pics/2013-09-18-115405 (1).jpg +0 -0
  197. data/pics/2013-09-18-115405 (2).jpg +0 -0
  198. data/pics/2013-09-18-115405.jpg +0 -0
  199. data/pics/2013-09-18-115407.jpg +0 -0
  200. data/pics/2013-09-18-115815.jpg +0 -0
  201. data/pics/2013-09-18-115822.jpg +0 -0
  202. data/pics/2013-09-18-115828.jpg +0 -0
  203. data/pics/2013-09-18-115833.jpg +0 -0
  204. data/pics/2013-09-18-124611.jpg +0 -0
  205. data/pics/2013-09-18-124616.jpg +0 -0
  206. data/pics/2013-09-18-124621.jpg +0 -0
  207. data/pics/2013-09-18-124650.jpg +0 -0
  208. data/pics/2013-09-18-124707.jpg +0 -0
  209. data/pics/2013-09-18-124714.jpg +0 -0
  210. data/pics/2013-09-21-184024.jpg +0 -0
  211. data/pics/2013-09-22-122715.jpg +0 -0
  212. data/pics/2013-09-28-153447.jpg +0 -0
  213. data/pics/2013-09-28-153458.jpg +0 -0
  214. data/pics/2013-09-28-153510.jpg +0 -0
  215. data/pics/2013-09-28-153520.jpg +0 -0
  216. data/pics/2013-09-28-153529.jpg +0 -0
  217. data/pics/2013-09-28-153535.jpg +0 -0
  218. data/pics/2013-09-29-131722.jpg +0 -0
  219. data/pics/2013-09-29-131728.jpg +0 -0
  220. data/pics/2013-09-29-131734.jpg +0 -0
  221. data/pics/2013-10-19-214859.jpg +0 -0
  222. data/pics/2013-10-21-183055.jpg +0 -0
  223. data/pics/2013-10-21-183103.jpg +0 -0
  224. data/pics/2013-10-21-183119.jpg +0 -0
  225. data/pics/2013-10-22-161908.jpg +0 -0
  226. data/pics/2013-10-22-180328.jpg +0 -0
  227. data/pics/2013-10-22-180333.jpg +0 -0
  228. data/pics/2013-10-22-180338.jpg +0 -0
  229. data/pics/2013-10-22-180343.jpg +0 -0
  230. data/pics/2013-10-22-180347.jpg +0 -0
  231. data/pics/2013-10-25-154155.jpg +0 -0
  232. data/pics/2013-10-25-154212.jpg +0 -0
  233. data/pics/2013-10-25-154217.jpg +0 -0
  234. data/pics/2013-10-25-154225.jpg +0 -0
  235. data/pics/2013-10-25-154238.jpg +0 -0
  236. data/pics/2013-10-25-154246.jpg +0 -0
  237. data/pics/2013-10-25-213812.jpg +0 -0
  238. data/pics/2013-10-26-234651.jpg +0 -0
  239. data/pics/2013-10-26-234655.jpg +0 -0
  240. data/pics/2013-10-26-234701.jpg +0 -0
  241. data/pics/2013-10-26-234713.jpg +0 -0
  242. data/pics/2013-10-26-234721.jpg +0 -0
  243. data/pics/2013-10-29-160443.jpg +0 -0
  244. data/pics/2013-10-29-160447.jpg +0 -0
  245. data/pics/2013-10-29-160451.jpg +0 -0
  246. data/pics/2013-10-29-160456.jpg +0 -0
  247. data/pics/2013-10-29-160511.jpg +0 -0
  248. data/pics/2013-10-30-122243.jpg +0 -0
  249. data/pics/2013-10-30-122252.jpg +0 -0
  250. data/pics/2013-10-30-122300.jpg +0 -0
  251. data/pics/2013-11-02-215843.jpg +0 -0
  252. data/pics/2013-11-02-215851.jpg +0 -0
  253. data/pics/2013-11-02-215942.jpg +0 -0
  254. data/pics/2013-11-02-220012.jpg +0 -0
  255. data/pics/2013-11-02-220017.jpg +0 -0
  256. data/pics/2013-11-02-220023.jpg +0 -0
  257. data/pics/2013-11-02-220029.jpg +0 -0
  258. data/pics/2013-11-02-220035.jpg +0 -0
  259. data/pics/2013-11-03-034514.jpg +0 -0
  260. data/pics/2013-11-03-034518.jpg +0 -0
  261. data/pics/2013-11-03-034543.jpg +0 -0
  262. data/pics/2013-11-03-034551.jpg +0 -0
  263. data/pics/2013-11-05-171053.jpg +0 -0
  264. data/pics/2013-11-05-171058.jpg +0 -0
  265. data/pics/2013-11-05-171108.jpg +0 -0
  266. data/pics/2013-11-05-171127.jpg +0 -0
  267. data/pics/2013-11-05-182642.jpg +0 -0
  268. data/pics/2013-11-05-182655.jpg +0 -0
  269. data/pics/2013-11-05-182730.jpg +0 -0
  270. data/pics/2013-11-05-182736.jpg +0 -0
  271. data/pics/2013-11-05-182855.jpg +0 -0
  272. data/pics/2013-11-05-182901.jpg +0 -0
  273. data/pics/2013-11-05-182906.jpg +0 -0
  274. data/pics/2013-11-05-182912.jpg +0 -0
  275. data/pics/2013-11-05-182921.jpg +0 -0
  276. data/pics/2013-11-05-182932.jpg +0 -0
  277. data/pics/2013-11-05-182940.jpg +0 -0
  278. data/pics/2013-11-05-182945.jpg +0 -0
  279. data/pics/2013-11-05-182950.jpg +0 -0
  280. data/pics/2013-11-05-183002.jpg +0 -0
  281. data/pics/2013-11-05-183009.jpg +0 -0
  282. data/pics/2013-11-05-183013.jpg +0 -0
  283. data/pics/2013-11-05-183018.jpg +0 -0
  284. data/pics/2013-11-05-183022.jpg +0 -0
  285. data/pics/2013-11-05-183027.jpg +0 -0
  286. data/pics/2013-11-05-183033.jpg +0 -0
  287. data/pics/2013-11-05-183037.jpg +0 -0
  288. data/pics/2013-11-05-183041.jpg +0 -0
  289. data/pics/2013-11-05-183107.jpg +0 -0
  290. data/pics/2013-11-05-183149.jpg +0 -0
  291. data/pics/2013-11-05-183154.jpg +0 -0
  292. data/pics/2013-11-05-183207.jpg +0 -0
  293. data/pics/2013-11-05-183210.jpg +0 -0
  294. data/pics/2013-11-05-183214.jpg +0 -0
  295. data/pics/2013-11-05-183219.jpg +0 -0
  296. data/pics/2013-11-05-183319.jpg +0 -0
  297. data/pics/2013-11-05-190310.jpg +0 -0
  298. data/pics/2013-11-05-190315.jpg +0 -0
  299. data/pics/2013-11-05-190332_1.jpg +0 -0
  300. data/pics/2013-11-05-190332_2.jpg +0 -0
  301. data/pics/2013-11-05-190332_3.jpg +0 -0
  302. data/pics/2013-11-05-190332_4.jpg +0 -0
  303. data/pics/2013-11-05-190356_1.jpg +0 -0
  304. data/pics/2013-11-05-190356_2.jpg +0 -0
  305. data/pics/2013-11-05-190356_3.jpg +0 -0
  306. data/pics/2013-11-05-190356_4.jpg +0 -0
  307. data/pics/2013-11-05-190506_1.jpg +0 -0
  308. data/pics/2013-11-05-190506_2.jpg +0 -0
  309. data/pics/2013-11-05-190515_1.jpg +0 -0
  310. data/pics/2013-11-05-190515_2.jpg +0 -0
  311. data/pics/2013-11-05-190515_3.jpg +0 -0
  312. data/pics/2013-11-05-190539_1.jpg +0 -0
  313. data/pics/2013-11-05-190539_2.jpg +0 -0
  314. data/pics/2013-11-05-190539_3.jpg +0 -0
  315. data/pics/2013-11-05-190539_4.jpg +0 -0
  316. data/pics/2013-11-05-190616_1.jpg +0 -0
  317. data/pics/2013-11-05-190616_2.jpg +0 -0
  318. data/pics/2013-11-05-190616_3.jpg +0 -0
  319. data/pics/2013-11-05-190616_4.jpg +0 -0
  320. data/pics/2013-11-05-190632_1.jpg +0 -0
  321. data/pics/2013-11-05-190632_2.jpg +0 -0
  322. data/pics/2013-11-05-190632_3.jpg +0 -0
  323. data/pics/2013-11-05-190632_4.jpg +0 -0
  324. data/pics/2013-11-05-190649_1.jpg +0 -0
  325. data/pics/2013-11-05-190649_2.jpg +0 -0
  326. data/pics/2013-11-10-031757.jpg +0 -0
  327. data/pics/2013-11-18-223011.jpg +0 -0
  328. data/pics/2013-11-18-223049.jpg +0 -0
  329. data/pics/2013-11-18-223056.jpg +0 -0
  330. data/pics/2013-11-18-223107.jpg +0 -0
  331. data/pics/2013-11-18-223120.jpg +0 -0
  332. data/pics/2013-11-20-192428.jpg +0 -0
  333. data/pics/2013-11-20-192440.jpg +0 -0
  334. data/pics/2013-11-21-130544.jpg +0 -0
  335. data/pics/2013-11-21-130602.jpg +0 -0
  336. data/pics/2013-11-21-130612.jpg +0 -0
  337. data/pics/2013-11-21-130618.jpg +0 -0
  338. data/pics/2013-11-21-130624.jpg +0 -0
  339. data/pics/2013-11-21-130630.jpg +0 -0
  340. data/pics/2013-11-21-130636.jpg +0 -0
  341. data/pics/Mah face.jpg +0 -0
  342. data/pics/balls.jpg +0 -0
  343. data/pics/cawkballs2.jpg +0 -0
  344. data/pics/cawkballz.jpg +0 -0
  345. data/pics/feet.jpg +0 -0
  346. data/pics/mah.jpg +0 -0
  347. data/pics/mahface2.jpg +0 -0
  348. data/ssimsort.gemspec +17 -0
  349. metadata +419 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9d474e8a2b445d7be76008689d6a53fd569fe07d
4
+ data.tar.gz: 96310e969b9347869195bc45fa8ecebae19de4f9
5
+ SHA512:
6
+ metadata.gz: 3bc858ac61bf7db56e23a874e916f6c508aaee59a054795fb12cfd3cb4613c0ba05808976e6992d5fdc1db009a4eac61c57aaabb79a8b24f5026705a24976d5c
7
+ data.tar.gz: f3051dc4fe04deea95cf6ffdaaf1b3ea9ecd71dd37f112886c56ef0598d00fed43ecb768cbb101594fe8e839dfcb2c44b8ebd3c79f4eac88342fe4beccae5a3c
data/README.md ADDED
@@ -0,0 +1,18 @@
1
+ #Ssimsort
2
+
3
+
4
+ *Requires* : RMagick
5
+
6
+ *Install ssimsort* :
7
+
8
+ ~~~
9
+ gem install ssimsort
10
+ ~~~
11
+
12
+ *Use ssim as an executable* :
13
+
14
+ ~~~
15
+ $ ssim <INPUT>, <OUTPUT>, <TOLERANCE>
16
+
17
+ #Tolerance is a number between 0.0 and 1.0 that defines how similar the images you want to sort will be, 1.0 being the exact same image.
18
+ ~~~
data/bin/ssimsort ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ root = File.expand_path("../..", __FILE__)
4
+ require "#{root}/lib/main.rb"
5
+
6
+
7
+ SsimSort.sort(ARGV[0],ARGV[1],*ARGV[2])
data/lib/array.rb ADDED
@@ -0,0 +1,16 @@
1
+ class Array
2
+
3
+ def covariance
4
+ sx, sy, sp = 0.0, 0.0, 0.0
5
+ return sx if empty?
6
+ target = first.respond_to?(:to_ary) ? self :
7
+ self.class.new(size) { |i| [i + 1, at(i)] }
8
+ target.each { |x, y|
9
+ sx += x
10
+ sy += y
11
+ sp += x * y
12
+ }
13
+ (sp - sx * sy / size) / size
14
+ end
15
+
16
+ end
data/lib/main.rb ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ module SsimSort
4
+
5
+ root = File.expand_path("../..", __FILE__)
6
+ require "numeric_array"
7
+ require "#{root}/lib/array.rb"
8
+ require "RMagick"
9
+ require "fileutils"
10
+ include Magick
11
+
12
+ def SsimSort.cov(x,y)
13
+ return x.zip(y).covariance
14
+ end
15
+
16
+
17
+ def SsimSort.get_lum(img,px=100)
18
+ img = img.scale(px,px)
19
+ lum_average = img.get_pixels(0, 0, img.columns, img.rows).map do |p|
20
+ p.to_HSL[2]
21
+ end
22
+ return lum_average
23
+ end
24
+
25
+
26
+ def SsimSort.ssim(file1,file2)
27
+ cA,cB = 0, 0
28
+ x,y = get_lum(ImageList.new(file1)), get_lum(ImageList.new(file2))
29
+ var_x, var_y = x.variance, y.variance
30
+ moy_x, moy_y = x.mean, y.mean
31
+ a = (2*moy_x*moy_y+cA)*(2*(cov(x,y))+cB)
32
+ b = (moy_x**2+moy_y**2+cA)*(var_x+var_y+cB)
33
+ (a/b) < 0 ? 0 : (a/b).round(3)
34
+ end
35
+
36
+
37
+ def SsimSort.sort(input_path,output_path,tolerance=0.8)
38
+ formats = /(.jpg$|.png$|.JPG$|.PNG$|.gif$|.bmp$|.BMP$)/
39
+ files = Dir.entries(ARGV[0]).map {|file| File.absolute_path("#{ARGV[0]}/#{file}")}
40
+ files.select!{|f| formats=~ f}
41
+ set = files.combination(2).to_a
42
+ set.each do |file1,file2|
43
+ path = "#{ARGV[1]}/#{file1.split("/").last}/"
44
+ dir = FileUtils.makedirs(path) unless File.exists?(path)
45
+ simil = SsimSort.ssim(file1,file2)
46
+ simil < tolerance ? next : FileUtils.cp(file2,path)
47
+ end
48
+ end
49
+
50
+ end
51
+
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file