小趴菜菜 2023-11-11 16:53 采纳率: 0%
浏览 3

用了高斯模糊以后图像是黑屏是为什么

要求是:用MATLAB写一段代码,读取一个图像,生成sigma为30的二维高斯窗口,使该窗口盖在图像上,通过鼠标点击控制高斯覆盖的位置,使它能动态变化,中心位置为鼠标在图像上的位置。
为啥我写的代码运行后是黑屏啊,点击也没用?

im = imread('1.jpg');
imshow('1.jpg')
[y,x,z] = size(im);
sigma = 30;
[X,Y] = meshgrid(1:x,1:y);
currPt = get(gca,'CurrentPoint');
x0 = currPt(1,1);
y0 = currPt(1,2);
Background = (1/(sigma*sqrt(2*pi)))*exp((-1/2/sigma^2)*((X-x0).^2+(Y-y0).^2));
Background = Background/max(max(Background));
imagesc(Background);
tmp = double(im).*Background;
imshow(uint8(tmp));

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-11 18:34
    关注

    【相关推荐】



    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7758198
    • 这篇博客也不错, 你可以看下利用MATLAB生成软件二阶低通滤波器(绝对靠谱)
    • 您还可以看一下 硬核野生技术咨询客服小李老师的matlab零基础入门路径规划城市遍历机器人路径等问题课程中的 深入学习结构体小节, 巩固相关知识点
    • 除此之外, 这篇博客: c语言和matlab编程实现序列卷积(不调包)中的 语音信号和随机序列的卷积(使用自己编写的卷积函数) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      程序如下:

      %语音信号卷积
      clc 
      clear all
      [x,fs]=audioread('voice.wav');  %读取语音文件
      s=1:length(x);
      t=s/fs;
      xmax=max(abs(x));   %取最大幅值
      x=x/xmax;        %归一化
      y=randn(size(x));%产生同x相同长度的随机序列
      ymax=max(abs(y));
      y=y/ymax;
      a=length(x)  %计算x的长度
      b=length(y)  %计算y的长度
      z=zeros(1,a+b-1);    %对用于保存结果的矩阵赋初值
      
      %卷积开始
      t1=clock;  %计时开始
      for i=1:1:(a+b-1)    %外循环控制输出序列
          for j=1:1:b  %内循环控制卷积序列
              if ((i-j)>=0 && (i-j)<a)  %卷积控制
                  z(i)=z(i)+x(i-j+1).*y(j);   %卷积,并输出结果显示
              end
          end
      end
      t2=clock;  %计时结束
      time=etime(t2,t1)   %计算卷积时间
      
      zmax=max(abs(z));   %取幅值
      z=z/zmax;   %归一化
      t2=(1:length(z))/fs;     %画图时的x轴
      figure(1)
      subplot(311)
      plot(t,x);
      xlabel('时间/s');
      ylabel('归一化幅值');
      title('(a)原始信号');
      subplot(312)
      plot(t,y);
      xlabel('时间/s');
      ylabel('归一化幅值');
      title('(b)随机序列');
      subplot(313)
      plot(t2,z);
      xlabel('时间/s');
      ylabel('归一化幅值');
      title('(c)信号卷积');
      

      结果
      运行时间:

      time =
      
         11.1140
      

      卷积结果:

      在这里插入图片描述
      使用matlab自带卷积函数进行卷积计算,程序如下:

      %2.2.2-2:语音信号卷积
      clc 
      clear all
      [x,fs]=audioread('voice.wav');  %读取语音文件
      s=1:length(x);
      t=s/fs;
      xmax=max(abs(x));   %取最大幅值
      x=x/xmax;        %归一化
      y=randn(size(x));%产生同x相同长度的随机序列
      ymax=max(abs(y));
      y=y/ymax;
      
      t1=clock;  %计时开始
      z=conv(x,y);  % 调用conv卷积函数进行卷积计算
      t2=clock;  %计时结束
      time=etime(t2,t1)   %计算卷积时间
      
      zmax=max(abs(z));   %取幅值
      z=z/zmax;   %归一化
      t2=(1:length(z))/fs;     %画图时的x轴
      figure(1)
      subplot(311)
      plot(t,x);
      xlabel('时间/s');
      ylabel('归一化幅值');
      title('(a)原始信号');
      subplot(312)
      plot(t,y);
      xlabel('时间/s');
      ylabel('归一化幅值');
      title('(b)随机序列');
      subplot(313)
      plot(t2,z);
      xlabel('时间/s');
      ylabel('归一化幅值');
      title('(c)信号卷积');
      

      运行时间:

      time =
      
          0.0960
      

      运行结果:
      在这里插入图片描述


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月11日

悬赏问题

  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题
  • ¥15 有没有人能解决下这个问题吗,本人不会编程
  • ¥15 plotBAPC画图出错
  • ¥30 关于#opencv#的问题:使用大疆无人机拍摄水稻田间图像,拼接成tif图片,用什么方法可以识别并框选出水稻作物行
  • ¥15 Python卡尔曼滤波融合
  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别