[過去ログ] 【paiza】コーディング転職 10社目【AtCoderJobs】 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
576(1): 514 2022/06/17(金)00:47 AAS
>>574
座標を整数ではなく、0.5とかにしたのは、当時参考にしたサイトによる影響です。
外部リンク[html]:web.archive.org
縮小(Shrink)では、リサイズ後の座標に比率を掛けてリサイズ前の座標に対応する、計算対象となる前後の対象範囲を求めてます。
From: (int)Math.Floor(scaleFactor * (x - 2))
To: (int)Math.Floor(scaleFactor * (x + 3))
Enlargeの方は、バグかな?と思ったのですが、Shrinkを用いて極端な拡大(例えば100倍)を行った場合、モザイク状になってしまうところ、
省3
578(1): 2022/06/17(金)08:15 AAS
>>576
そのロジックって手前味噌ながら僕のコード見て貰えばわかると思うけど、まずターゲットのWxHのサイズで仮想的なピクセルの絵を作って、次にそのピクセルごとにソースの絵の対応するピクセルを求める(Factorを掛ければ出る)
そしてそのソースのピクセルの周りを前後左右に2個づつ、計5x5(僕のコードはkが可変なのでkが3の場合)のウインドウでとって重みをかけて合わせたものをターゲットのピクセルにセットするものなので、括弧に入れてしまうとおかしなところからサンプリングすることになりますね
例えば10倍に拡大する場合、x(ターゲットの横幅)が30の位置だとソースの3+-2で1から5を取りたいのに、それだと2から3までを取ることになるので滑らかにするロジックが効いてない(2x2になってしまっている)ですね
ガタガタするのはそのせい
Enlargeの方はそこは正しいですけど、真ん中のターゲットを中心に5x5(あるいは7x7など)で正方形にするはずが、左と上に2、右と下に3ずつとズレて取っているので、+するのは3じゃなくて2が正しいですね
僕の方のコードは同じロジックで拡大縮小、アスペクト比の変換全部カバーしてます
省3
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s