Matlab 如何在图像的小区域上执行图像增强?

Matlab 如何在图像的小区域上执行图像增强?,matlab,image-processing,Matlab,Image Processing,我想增强图像的一部分。我想增强矩形区域内的区域(尤其是绿色矩形区域上的区域)使用类似于ginput的函数,您可以在图像上选择一个点,并且具有矩形的宽度和高度值,您可以从图像中裁剪矩形。然后,您可以使用任何功能(如imadjust)来增强裁剪的零件 a= 100; % height b= 100; % width I = imread('myimage.png');

我想增强图像的一部分。我想增强矩形区域内的区域(尤其是绿色矩形区域上的区域)

使用类似于
ginput
的函数,您可以在图像上选择一个点,并且具有矩形的宽度和高度值,您可以从图像中裁剪矩形。然后,您可以使用任何功能(如
imadjust
)来增强裁剪的零件

a= 100;                             % height
b= 100;                             % width 
I = imread('myimage.png');          % read the image file
figure;imagesc(I);                  % plot the image
[x,y] = ginput(1);                  % select a point
I2 = I(:,:,1);                      %
Ic = imcrop(I2,[x-a/2 y-b/2 a b]);  % crop a rectangle around the selected point
J = imadjust(Ic);                   % adjust the contrast
如果希望能够选择矩形,可以使用以下命令:

imshow('myimage.png');
rect = getrect;
你可以用


这将要求您绘制一个矩形,
rect
将包含该矩形的坐标
I2
包含裁剪后的图像,然后您可以在该矩阵上应用任何您想要的功能。

增强是什么意思?如果你有矩形的坐标,那么你可以只对该区域应用任何函数,因为它被视为一个矩阵。调整对比度。IMCONTRUST不工作如何获得矩形的坐标j=imadjust(Ic)是正确的。但它没有产生足够的对比度。对绿色矩形有什么建议吗?@abcd-试试另一种方法。。。像
histeq
。一旦应用histeq,我丢失了所有连接的组件,分割结果不好
[I2 rect] = imcrop(I)