2枚の画像に対してブロックごとにSSIMを出したい
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
和神 水ノ江
el 4 de Ag. de 2021
Comentada: 和神 水ノ江
el 5 de Ag. de 2021
2枚の入力画像(300×300)に対し、10×10のブロックごとにSSIMを出し、入力画像のどこのブロックに差があるのかを出力したいと考えています。
画像に対するブロックごとの処理ということでblockprocを用いて行おうとしましたが、入力が2つあるため上手く実装することができませんでした。
この場合、どのように実装すればよろしいでしょうか?
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 4 de Ag. de 2021
2枚のデータ(2次元)を3次元方向に重ねれば、まとめてblockproc関数に渡す事が出来ます。
star = rgb2gray(imread('star.png'));
circle = rgb2gray(imread('circle.png'));
stacks = cat(3,star,circle); % 2枚の入力画像を1変数に重ねる
fun = @(block_struct) ssim(block_struct.data(:,:,1),block_struct.data(:,:,2));
ssimvals = blockproc(stacks,[10 10],fun); % 10×10のブロックごとにSSIMを出す
imshow(ssimvals); % 30×30のSSIM値を試しに画像として表示してみる
検証用に準備した2枚の入力画像(300×300)は、適当な絵(〇と☆)で類似性は全くありません。
Más respuestas (0)
Ver también
Categorías
Más información sobre 近傍処理とブロック処理 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!