How to make the output size of imwarp the same as the input?

조회 수: 25 (최근 30일)
渲航
渲航 2023년 5월 20일
답변: 渲航 2023년 5월 21일
I have some 3D images and wish to perform some rigid transform on them and keep the input size and output size the same. I used the imwarp function for these operations. But I found that it seems impossible to directly give parameters to ensure that the input and output have the same size as functions such as imrotate. How should I deal with it?
(Theoretically I can also crop or pad by myself, but sometimes the size of the image has an odd number, which makes it difficult to define the transformation by myself.)

채택된 답변

Matt J
Matt J 2023년 5월 20일
There is an OutputView input parameter that will let you control that,

추가 답변 (1개)

渲航
渲航 2023년 5월 21일
I found the solution by Matt J's answer
Besides the transform defnition
tform = rigidtform3d(rotation,translation);
We should define another object by function affineOutputView, such as
sameAsInput = affineOutputView(size(img_pad),tform,"BoundsStyle","SameAsInput"); % the same output size as input
then applied both of them
res_volume = imwarp(img,tform,"OutputView",sameAsInput);

카테고리

Help CenterFile Exchange에서 3-D Volumetric Image Processing에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by