资讯专栏INFORMATION COLUMN

彩色图像生成素描

Blackjun / 3174人阅读

摘要:梯度边缘提取算法是中求一个数组维数的函数,返回的行数用于边缘提取转置线性空间滤波函数表示图像大小通过复制外边界的值来扩展,表示图像大小通过沿自身的边界进行滤镜表示通过将图像作为二位周期函数的一个周期来扩展计算反正切函数点除如果是矩阵,就是

colorgrad.m

%梯度边缘提取算法
function [VG, A, PPG] = colorgrad(f, T)
if (ndims(f)~=3) || (size(f,3)~=3)              %ndims是matlab中求一个数组维数的函数,size(f,3)返回f的行数
    error("Input image must be RGB");
end
sh = fspecial("sobel");                          %sobel用于边缘提取
sv = sh";                                        %转置
Rx = imfilter(double(f(:,:,1)), sh, "replicate");%线性空间滤波函数;replicate表示图像大小通过复制外边界的值来扩展,
Ry = imfilter(double(f(:,:,1)), sv, "replicate");%symmetric表示图像大小通过沿自身的边界进行滤镜
Gx = imfilter(double(f(:,:,2)), sh, "replicate");%circular表示通过将图像作为二位周期函数的一个周期来扩展
Gy = imfilter(double(f(:,:,2)), sv, "replicate");
Bx = imfilter(double(f(:,:,3)), sh, "replicate");
By = imfilter(double(f(:,:,3)), sv, "replicate");
 
gxx = Rx.^2 + Gx.^2 + Bx.^2;
gyy = Ry.^2 + Gy.^2 + By.^2;
gxy = Rx.*Ry + Gx.*Gy + Bx.*By;
A = 0.5*(atan(2*gxy./(gxx-gyy+eps)));            
%%atan计算反正切函数                            |||||
%%./点除                                       |||||          如果a、b是矩阵,a./b就是a、b中对应的每个元素相除,得到一个新的矩阵;如果a、b是两个数,那么a./b就是普通的除法
%%eps是一个函数,可以返回某一个数N的最小浮点数精度|||||

G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));  %
A = A + pi/2;
G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));
G1 = G1.^0.5;
G2 = G2.^0.5;
VG = mat2gray(max(G1, G2));            %mat2gray实现图像矩阵的归一化操作
 
RG = sqrt(Rx.^2 + Ry.^2);
GG = sqrt(Gx.^2 + Gy.^2);
BG = sqrt(Bx.^2 + By.^2);
 
PPG = mat2gray(RG + GG + BG);
 
if nargin ==2                           %是用来判断输入变量个数的函数
    VG = (VG>T).*VG;
    PPG = (PPG>T).*PPG;
end

demo.m

close all;clear all;clc;
f = imread("wo.jpg");
[VG,A,PPG] = colorgrad(f);
ppg = im2uint8(PPG); %把图像数据类型转换为无符号八位整型
ppgf = 255 - ppg;
[M,N] = size(ppgf);
T=150;
ppgf1 = zeros(M,N);
for ii = 1:M
    for jj = 1:N
        if ppgf(ii,jj)

实验原图:

实验效果:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/61366.html

相关文章

  • Python 计算机视觉(十五)—— 图像特效处理

    摘要:话不多说,先是本系列文章的经典操作之读取图像信息得到的图像信息如下毛玻璃特效毛玻璃特效的原理是在当前的像素点的邻域内随机取一个像素点来代替它,从而达到一个毛玻璃的模糊的效果。 参考的一些文章以及论文我都会给大家分享出来 —— 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如...

    LeexMuller 评论0 收藏0
  • OpenCV的图像通道操作

    摘要:基本介绍在中,图像通道是按照通道通道通道的顺序存储的。在图像处理过程中,可以根据需要对通道进行拆分和合并。通道拆分对于图像,可以索引的方式或者函数的方式分别拆分出其通道。语句可以获得彩色图像的通道图像通道图像和通道图像。 ...

    adie 评论0 收藏0
  • 神还原女神照片!GAN为百年旧照上色

    摘要:如何把女神的黑白照片变成彩照今日小编发现新加坡数据科学与人工智能部门在上介绍了一个为百年旧照上色的项目。照片为新加坡华人女子学校,摄于年期间。来自新加坡国家档案馆的原始照片左和上色后的照片右。利用给年的汤加太平洋岛国旧照上色。 一键点击,百年旧照变彩色。如何把女神的黑白照片变成彩照?今日小编发现新加坡 GovTech 数据科学与人工智能部门在 Medium 上介绍了一个为百年旧照上色的项目。...

    gaomysion 评论0 收藏0
  • LabVIEW色彩分类识别

    摘要:色彩分类用于根据样本的颜色信息对其进行分类识别。与单色目标的分类识别类似,色彩分类过程也包括训练和分类两个阶段。这样在后续色彩分类过程中,就可从该文件中读取这些信息,对彩色目标进行识别和分类。 色彩分类(Color Classification)用于根据样本的颜色信息对其进行分类识别。与单色...

    william 评论0 收藏0
  • 【OpenCV 完整例程】21. 图像的叠加

    摘要:实现图像的叠加,需要综合运用图像阈值处理图像掩模位操作和图像加法的操作。使用位操作生成前景背景图像时,遮罩区域以外与进行自与操作,如果用自或操作参见程序注释语句的效果也是相同的。该方法通过固定阈值处理图像,将像素点的灰度值设为或。 ...

    whinc 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<