对图片进行基本运算
上下截断
对低于n的灰度值固定为n,高于m的灰度值固定为m。
matlab代码
scss
% 读取图像
originalImage = imread("D:\Project\programmes\数字图像处理\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代码
ini
% 读取图像
originalImage = imread("D:\Project\programmes\数字图像处理\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代码
ini
% 读取图像
originalImage = imread("D:\Project\programmes\数字图像处理\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代码
ini
% 读取图像
originalImage = imread("D:\Project\programmes\数字图像处理\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代码
ini
% 读取图像
originalImage = imread("D:\Project\programmes\数字图像处理\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代码
ini
% 读取图像
originalImage = imread("D:\Project\programmes\数字图像处理\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代码
ini
% 读取图像
originalImage = imread("D:\Project\programmes\数字图像处理\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)]);