对图片进行基本运算
上下切断
对低于n的灰度值固定为n,高于m的灰度值固定为m。
matlab代码
% 读取图画
originalImage = imread("D:Projectprogrammes数字图画处理R.jpg"');
% 假如图画是彩色的,则转换为灰度图画
if size(originalImage, 3) == 3
grayImage = rgb2gray(originalImage);
else
grayImage = originalImage;
end
% 设置灰度值切断的上限和下限
n = 80;
m = 180;
OriginalGrayImage = grayImage;
% 对低于n的灰度值固定为n
grayImage(grayImage < n) = n;
% 对高于m的灰度值固定为m
grayImage(grayImage > m) = m;
% 在同一窗口内并排显现原始图画和处理后的图画
figure;
subplot(1, 2, 1); % 切割窗口为1行2列,并定位到第1个方位
imshow(OriginalGrayImage), title('Original Image');
subplot(1, 2, 2); % 定位到第2个方位
imshow(grayImage), title('Truncated Image');ayImage), title('Truncated Image');
作用
补偿
对所有像素灰度值提高50,超出255的部分算255。
matlab代码
% 读取图画
originalImage = imread("D:Projectprogrammes数字图画处理R.jpg");
% 假如图画是彩色的,则转换为灰度图画
if size(originalImage, 3) == 3
grayImage = rgb2gray(originalImage);
else
grayImage = originalImage;
end
% 提高所有灰度值n,但不超越255
n = 50; % 能够根据需要更改此值
enhancedImage = grayImage n;
enhancedImage = min(enhancedImage, 255); % 确保灰度值不超越255
% 在同一窗口内并排显现原始图画和增强后的图画
figure;
subplot(1, 2, 1); % 切割窗口为1行2列,并定位到第1个方位
imshow(grayImage), title('Original Image');
subplot(1, 2, 2); % 定位到第2个方位
imshow(enhancedImage), title('Enhanced Image');
作用
平方
对灰度值做平方处理,超出255的部分算255。
matlab代码
% 读取图画
originalImage = imread("D:Projectprogrammes数字图画处理R.jpg");
% 假如图画是彩色的,则转换为灰度图画
if size(originalImage, 3) == 3
grayImage = rgb2gray(originalImage);
else
grayImage = originalImage;
end
% 对灰度值进行平方处理
squaredImage = double(grayImage).^2;
% 约束最大值不超越255
squaredImage = min(squaredImage, 255);
% 将处理后的图画转换回uint8类型以便显现
squaredImage = uint8(squaredImage);
% 在同一窗口内并排显现原始图画和处理后的图画
figure;
subplot(1, 2, 1); % 切割窗口为1行2列,并定位到第1个方位
imshow(grayImage), title('Original Image');
subplot(1, 2, 2); % 定位到第2个方位
imshow(squaredImage), title('Squared Image');
作用
方根
对灰度值做方根处理。
matlab代码
% 读取图画
originalImage = imread("D:Projectprogrammes数字图画处理R.jpg");
% 假如图画是彩色的,则转换为灰度图画
if size(originalImage, 3) == 3
grayImage = rgb2gray(originalImage);
else
grayImage = originalImage;
end
% 对灰度值进行平方处理
squaredImage = double(grayImage).^2;
% 约束最大值不超越255
squaredImage = min(squaredImage, 255);
% 将处理后的图画转换回uint8类型以便显现
squaredImage = uint8(squaredImage);
% 在同一窗口内并排显现原始图画和处理后的图画
figure;
subplot(1, 2, 1); % 切割窗口为1行2列,并定位到第1个方位
imshow(grayImage), title('Original Image');
subplot(1, 2, 2); % 定位到第2个方位
imshow(squaredImage), title('Squared Image');
作用
求反
将每个像素的灰度值从当时值转换为255减去当时值。
matlab代码
% 读取图画
originalImage = imread("D:Projectprogrammes数字图画处理R.jpg");
% 假如图画是彩色的,则转换为灰度图画
if size(originalImage, 3) == 3
grayImage = rgb2gray(originalImage);
else
grayImage = originalImage;
end
% 对灰度值进行求反处理
invertedImage = 255 - grayImage;
% 在同一窗口内并排显现原始图画和求反处理后的图画
figure;
subplot(1, 2, 1); % 切割窗口为1行2列,并定位到第1个方位
imshow(grayImage), title('Original Image');
subplot(1, 2, 2); % 定位到第2个方位
imshow(invertedImage), title('Inverted Image');
作用
放缩
将灰度值乘以n倍,假如超越255则依照255算。
matlab代码
% 读取图画
originalImage = imread("D:Projectprogrammes数字图画处理R.jpg");
% 假如图画是彩色的,则转换为灰度图画
if size(originalImage, 3) == 3
grayImage = rgb2gray(originalImage);
else
grayImage = originalImage;
end
% 设置放大倍数n
n = 2; % 例如放大2倍,您能够根据需要调整这个值
% 将灰度值乘以n倍
scaledImage = double(grayImage) * n;
% 约束最大值不超越255
scaledImage = min(scaledImage, 255);
% 将处理后的图画转换回uint8类型以便显现
scaledImage = uint8(scaledImage);
% 在同一窗口内并排显现原始图画和放缩后的图画
figure;
subplot(1, 2, 1); % 切割窗口为1行2列,并定位到第1个方位
imshow(grayImage), title('Original Image');
subplot(1, 2, 2); % 定位到第2个方位
imshow(scaledImage), title('Scaled Image');
作用
Gamma
将灰度值做次方运算。
matlab代码
% 读取图画
originalImage = imread("D:Projectprogrammes数字图画处理R.jpg");
% 假如图画是彩色的,则转换为灰度图画
if size(originalImage, 3) == 3
grayImage = rgb2gray(originalImage);
else
grayImage = originalImage;
end
% 设置Gamma值
gamma = 1.1; % 举例运用1.1,能够根据需要调整
% 使用Gamma运算
gammaCorrectedImage = double(grayImage).^gamma;
% 将处理后的图画转换回uint8类型以便显现
gammaCorrectedImage = uint8(gammaCorrectedImage);
% 在同一窗口内并排显现原始图画和Gamma处理后的图画
figure;
subplot(1, 2, 1); % 切割窗口为1行2列,并定位到第1个方位
imshow(grayImage), title('Original Image');
subplot(1, 2, 2); % 定位到第2个方位
imshow(gammaCorrectedImage), title(['Gamma Corrected Image, Gamma = ', num2str(gamma)]);
作用