如何在matlab上旋转图像而不获得黑色背景

如何在matlab上旋转图像而不获得黑色背景,matlab,image-processing,Matlab,Image Processing,检查我可以使用imrotate,但我会得到一个黑色背景的图像,如下所示: 我想要一张更像这样的照片: 基本上,我不想添加任何黑色或白色像素或任何像素,我只想我的图像旋转没有任何额外的背景 请注意,当我在matlab上显示第二幅图像时,它也会显示黑色背景和一堆0像素,我想您可以使用 J=I旋转(I,角度,方法,'lose') 以J格式保存完整图像(在边框处包含0像素)。 然后使用rgb2ind()或bwconncomp()可以识别包含图像的连接组件(应该有4个):通过这种方式,可以将这些像素的

检查我可以使用imrotate,但我会得到一个黑色背景的图像,如下所示:

我想要一张更像这样的照片:

基本上,我不想添加任何黑色或白色像素或任何像素,我只想我的图像旋转没有任何额外的背景

请注意,当我在matlab上显示第二幅图像时,它也会显示黑色背景和一堆0像素,我想您可以使用

J=I旋转(I,角度,方法,'lose')

以J格式保存完整图像(在边框处包含0像素)。 然后使用rgb2ind()或bwconncomp()可以识别包含图像的连接组件(应该有4个):通过这种方式,可以将这些像素的颜色更改为白色
为了避免有4个组件,您可以首先自己添加一个黑色矩形,这样图像J将完全被黑色像素包围

我认为您混淆了图像本身和显示它的窗口(或帧)。在我看来,你的第二张图片看起来像是用白色像素填充到一个矩形框中以供显示,而不是第一张图片中的黑色像素。但你的问题似乎表明这不是你想要的。你是说你想要某种图像文件,第一行存储一个像素,第二行存储3个像素,第三行存储5个像素,等等?祝你好运。让黑色区域(背景)透明。。。这是唯一的办法。正如Mark刚才解释的那样,图像数据将始终是一个矩形区域,您的工作是以您想要的方式显示(或不显示)每个像素。如果它是您想要旋转的显示图像,则按常规显示,获取
图像
图形对象的句柄,然后调用。