精华内容
下载资源
问答
  • 一个画高斯三维图像的matlab脚本文件,可以画出漂亮的图像
  • 因为本学期需要c#课程设计,然后我就在网上自学习了一些这方面知识,比如c#调用matlab函数的例子,在网上也比较多。但是基本都是零零碎碎。我也是在网上零零碎碎找,所以我算是整理了一下。整个文章都是自己...

    因为本学期需要c#的课程设计,然后我就在网上自学习了一些这方面的知识,比如c#调用matlab函数的例子,在网上也比较多。但是基本都是零零碎碎的。我也是在网上零零碎碎找的,所以我算是整理了一下。整个文章都是自己整理。

    1.先在matlab里面写入函数

    这里的函数我是带了参数,name是图片的路径。

    function ppp
    i=imread('D:\ffinal\source.bmp');//读入照片,个人推荐是相对路径,记得把照片放在那个目录下。相对路径下 文件夹可以移动。绝对路径下 若是移动文件夹的位置,代码也需要作出相应的修改
    imshow(i);
    imwrite(i,'D:\ffinal\21.bmp');
    end
    (这里参考了小伙伴提供的代码。)
    

    这里是在c#里面显示图片,以figure窗口显示,若是想要嵌入到c#窗口,我采用的方法是将图片保存在电脑上,再在c#里面提取图片。(若是有很好的方法,欢迎大家提供,谢谢)

    2.生成dll(附图 详细步骤)

    (1)在命令行窗口输入deploytool
    在这里插入图片描述

    (2)点击圈中地方
    在这里插入图片描述

    (3)按照顺序操作,记住空间名和类名
    在这里插入图片描述

    (4)打包结束后,会跳出图示文件。选中
    在这里插入图片描述
    记住这个,之后要引用它。
    在这里插入图片描述

    关于生成dll文件,已经结束了。关于c#如何调用dll,在下一节内容。
    (本文就是自己在学习途中学习到的过程,给需要帮助的朋友,若有问题,请给予纠正。)

    展开全文
  • c#界面调用dll (1)先建立c#的窗体应用程序 (2)点击视图里的工具箱,添加 button(按钮),...1个是在(一)里面提到的ppp1.dll文件(之前让你打包的生成的dll文件) 另一个是E:\MATLAB\toolbox\dotne...

    c#界面调用dll

    (1)先建立c#的窗体应用程序
    在这里插入图片描述

    (2)点击视图里的工具箱,添加 button(按钮),picturebox(放图片)(其他什么自己加),再修改属性值。
    picturebox的属性这里必须改,要不然图像就不能完全显示
    在这里插入图片描述在这里插入图片描述

    (3)引用dll(2个)
    1个是在(一)里面提到的ppp1.dll文件(之前让你打包的生成的dll文件)
    另一个是E:\MATLAB\toolbox\dotnetbuilder\bin\win64\v4.0\MWArray.dll(在matlab里面的)

    在这里插入图片描述

    (4)在代码块的最上面加上

    using MathWorks.MATLAB.NET.Arrays;
    using System.IO;
    using ppp1;
    

    (5)正式写代码部分

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using MathWorks.MATLAB.NET.Arrays;
    using System.IO;
    using ppp1;
    namespace WindowsFormsApplication11
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                pppclass a = new pppclass();
                a.ppp("D:\\ffinal\\2.bmp");
                Stream s = File.Open("D:\\ffinal\\21.bmp", FileMode.Open);//21.bmp是在matlab里面存的照片
                pictureBox1.Image = Image.FromStream(s);
                //将图像显示在picturebox1上
            }
    
            private void pictureBox1_Click(object sender, EventArgs e)
            {
    
            }
        }
    }
    
    

    (6)出现问题
    若是出现这样的问题。
    在这里插入图片描述

    方法:右击解决方案->属性->配置管理器。
    在这里插入图片描述
    我的是x64,修改后就可以了。
    在这里插入图片描述

    (7)显示结果:
    在这里插入图片描述

    若是哪里有不对的地方,希望各位提出。谢谢!

    展开全文
  • 输入图像的灰度取值区间为f(m,n)∈[a,b]线性变换后输出图像的灰度取值区间为g(m,n)∈[c,d],则变换过程表达式为:g(m,n)=c+k[f(m,n)-a] 其中k=(d-c)/(b-a),称为变换函数的斜率扩展动态范围:改变取值区间:缩小动态...

    输入图像的灰度取值区间为f(m,n)∈[a,b]

    线性变换后输出图像的灰度取值区间为g(m,n)∈[c,d],则变换过程的表达式为:

    g(m,n)=c+k[f(m,n)-a] 其中k=(d-c)/(b-a),称为变换函数的斜率

    扩展动态范围:

    fd1278b789a107981757f88aff0dc5aa.png

    改变取值区间:

    d205120646c35d4328ed4bc2ff3645b3.png

    缩小动态范围:

    216a0ebe055720748a6ab3f78f0b67fa.png

    举个例子:

    %假定图像的灰度取值范围是[0, 240],试求一个能将灰度范围从[0, 120]线性压缩至[0, 80][120, 240]线性移位至[80, 200]的灰度变换函数,并画出该灰度变换函数的函数图
    x=(0:1:240);
    a=0;
    b=120;
    c=0;
    d=80;
    e=240;
    f=200;
    k=(d-c)./(b-a);
    
    y=(c+k.*(x-a)).*(b>x&x>a)+((x-b)/(b)*b+d).*(e>=x&x>=b);
    
    plot(x,y);
    
    I=imread('firework.JPG');
    J=imadjust(I,[0.1 0.5],[]);
    % subplot(1,2,1),imshow(I);
    % subplot(1,2,2),imshow(J);
    I_gray = rgb2gray(I);
    % I_gray_uint8=uint8(I_gray);
    I_gray_double=double(I_gray);
    [rows,cols]=size(I_gray_double);
    for i =1:rows
         for j=1:cols
              if I_gray_double(i,j)<50
                I_gray_double_fin(i,j)=(I_gray_double(i,j)-0).*((100-0)./(50-0))+0;                        
              else
                  I_gray_double_fin(i,j)=I_gray_double(i,j);
    %          if I_gray_uint8(i,j)
    %              I_gray_uint8(i,j)=225-I_gray_uint8(i,j);
    %         
             end
         end
    end
    fin_I_gray=I_gray_double_fin./255;
    
    
    % fin_I = rgb(fin_I_gray);
     subplot(1,2,2),imshow( fin_I_gray);
    subplot(1,2,1),imshow(I_gray)             
        
    

    a8bde96d03e8c6914608bcfc338ecef3.png
    线性变换前后(右为原图)
    展开全文
  • 问题1、将文件夹当中多张图片进行灰度处理这里以 'C:\Users\苟辉朋\Desktop\视频\图片\'为例来处理文件夹当中多张图片,采用Matlab为工具来进行处理。同样与上一次处理图片灰度用rgb2gray函数处理,无非在上一...

    问题1、将文件夹当中的多张图片进行灰度处理

    这里以 'C:\Users\苟辉朋\Desktop\视频\图片\'为例来处理文件夹当中的多张图片,采用Matlab为工具来进行处理。同样与上一次处理图片的灰度用rgb2gray函数处理,无非在上一次的基础上加上循环,不同的是在上一次的基础前我们需要把文件夹读出来,同时进行遍历。

    程序如下:

    % 将图片批量转化为灰度图

    % 首先需要创建灰度图保存的文件夹

    % 读取图片的路径格式:'C:\Users\苟辉朋\Desktop\视频\图片\'

    % 写出灰度图的路径格式:''C:\MATLAB2019a\LY\图片\加载前灰度' + '\'

    clear

    clc

    % 读入需要转化为灰度图像的图片信息

    file_path = 'C:\Users\苟辉朋\Desktop\视频\图片\'; % 要转化的图片的文件夹

    %下面这一步需要注意自己保存的图片当中的格式

    img_path_list = dir(strcat(file_path,'*.jpg')); % 显示要转化的图片的详细信息

    img_num = length(img_path_list); % 计算要转化的图片的个数

    % 创建一个保存灰度图像的文件夹

    new_folder = 'C:\MATLAB2019a\LY\图片\加载前灰度\';

    mkdir(new_folder); % 创建文件夹,调用mkdir函数创建文件夹

    addpath(new_folder); % 添加文件夹路径

    % 批量生成灰度图像并保存到创建的文件夹下

    for j = 1:img_num

    image_name = img_path_list(j).name; % 选择第j个图片,调用name

    fprintf('%d %s\n',j,strcat(file_path,image_name)); % 显示图片名称

    originalimg = imread(strcat(file_path,image_name)); % 读入第j个图片

    imgtemp=rgb2gray(originalimg); % 将第j个转化为灰度图

    imwrite(imgtemp,[new_folder,image_name]);% 灰度图像批量保存在文件夹下,调用imwrite

    end

    同理,在这里要处理n张图片,就把n张图片存在文件夹下,然后采用上述代码就可以了。

    由于在这里无法插入处理前后的图片,所以感兴趣的同学自己就去把代码实现哈,其中注意读取文件夹这里,根据自己文件夹的路径去修改!

    展开全文
  • MATLAB图像生成函数Plot()总结

    千次阅读 2015-05-05 21:59:36
    生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。   (2)>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形是上30个点连成的光滑的正弦曲线。 二、...
  • 生成MATLAB的Logo图像

    2019-05-27 12:45:48
    matlab的Logo的图像由代码生成,可以通过下面两个命令查询用法 %% 查询用法 >> help logo % 或者 >> help membrane %% 绘图 >> logo 或者 >> membrane(k,m,n,np) %参数自己给出 logo函数...
  • 这段代码主要用来进行图像的批处理转换为灰度、二值和主成分图图像,希望给大家借鉴。其中 RGB to bw可以直接实现,但是效果不好,所以先用RGB to gray,之后再gray to bw。RGB to PAC 涉及到三维数据转换为二维...
  • 1、生成正弦波峰值的图像灰度值单行矩阵 A = 0 : 2*pi/559 : 2*pi; %定义正弦函数的周期,2*pi/A A+1代表渐变图像的宽度 B = 255*sin(A/2); %生成对应灰度值的幅值信息 然后 用matlab “repmat”函数对矩阵B进行...
  • matlab生成gif动态图像

    千次阅读 2011-08-13 18:32:30
    matlab里要生成动态图像关键有两个,一个是图像数据,要准备多幅同样大小的图像或者将图像数据变化的过程保存下来;其二是正确调用imwrite函数,最主要有两个属性,1是DelayTime,控制图像切换的间隔,2是LoopCount...
  • 使用Matlab的自带函数生成高斯滤波器处理与还原图片 生成指定大小高斯滤波器 使用函数 fspecial 生成空域高斯滤波器模板 Gauss = fspecial('gaussian',21,2); 注:对 fspecial 函数参数稍微解释一下,第一个...
  • 使用Matlab的自带函数生成高斯滤波器处理图片(二) 续接上文:使用Matlab的自带函数生成高斯滤波器处理图片(一) 上文我们使用高斯滤波器在频域完成了对图像的模糊与还原,在还原时我们使用模糊图片是刚被高斯...
  • 如何利用MATLAB中的fft2函数对二维的图像数据进行频域变换 clc clear all close all I = imread('testwomen.jpg'); %读取源图像 size(I) %显示图像采样值 figure(1); imshow(I); title('the original photo'...
  • Matlab图像处理函数汇总

    千次阅读 2015-12-26 10:30:38
    Matlab图像处理函数汇总: 图像的变换, 模拟噪声生成函数和预定义滤波器, 图像的增强, 图像边缘检测, 形态学图像处理, 改变MATLAB背景颜色, 小波变换.
  • 时候用C#写图像处理方法,比较费事,不如Matlab简单,但是Matlab又做不出WPF那样好看界面,怎么办呢。 今天正好我要实现这个功能,就顺便写个小例子,给需要人做个借鉴。 想要用WPF调用Matlab代码,就用到了...
  • MATLAB灰度图像生成gif

    千次阅读 2018-11-03 20:37:48
    MATLAB灰度图像生成gif 前言     问题来源于我想要制作一个三维图像的某一个维度所有切片图组合而成gif。首先在网上查阅资料发现现有方法是用getframe函数来实现,但是这样出来gif会有白色边框,我...
  • 1.如何保证三维图像的维度和图像维度一致 2.怎么把彩色RGB图像放上去
  • 我已经生成了一个函数来对图像应用分段线性变换。基于这个功能,我不确定它是否正确执行。有时整个图像显示为白色,所有像素列为255.其他时间显示输出图像,但结果不同。由于结果不同,我相信我功能存在问题。该...
  • 主要内容概述:预备知识MATLAB 代码实现GIF使用imageio 生成GIF使用animation 交互式方式生成GIF总结0,预备知识首先了解下什么是GIF 图片,以及常用图片格式。GIF全称是Graphics Interchange Format,可译为...
  • PAGE / NUMPAGES 1图像的变换 ? fft2fft2函数用于数字图像的二维傅立叶变换如i=imread'104_8.tif; j=fft2(i; ifft2:ifft2函数用于数字... 2模拟噪声生成函数和预定义滤波器 imnoise用于对图像生成模拟噪声如 ?i=imread'
  • out = imfilter(img, filt, ‘replicate’, ‘conv’); out:滤波后的函数 img:输入待滤波图像 ...②matlab生成 h=fspecial(‘gaussian’,7,8); 表示产生77gaussian矩阵,其标准差为8; h=fspecial...
  • Matlab中text函数可以在生成图像固定位置添加信息,如文字等。例图如下: %设置横纵坐标范围 tu_l_max=max([N_l_plot;N_l_pre_plot]); tu_l_min=min([N_l_plot;N_l_pre_plot]); axis([ceil(tu_l_min)-1 ceil(tu...
  • 有时我们需要验证一些算法...说明:【数据】表示直接可装载(load),【图像】也表示可以直接装载,【函数】表示需要计算(输入参数)才能生成数据。 【数据】leleccum 【数据】sumsin 【数据】vonkoch
  • C#与matlab混合编程 在matlab利用deploytool工具生成.NET.dll动态链接库,在vs工程里添加引用... 两个数组加、减例子 MWNumericArray 为中间类型.ToArray()方法返回类型与matlab函数返回类型相关  int[] a
  • Description:从二进制图像中删除所有少于P个像素连通区域(对象),从而生成一个二进制图像BW2。默认连通性是8。 二、MATLAB函数 bwarea——Area of objects in binary image Syntax:total = bwarea(bw2) Descr
  • x=[0 20 125 135 215 260 305 475 500 655 710 735 775 845 905 1190 1235 1320 1330 1345 1355] ...plot生成的图像后我想求从400到600之间的不定积分怎么办,求具体代码 (x和f中的数据都是我自己在视频中统计的)
  • fspecial()与imfilter()的使用函数说明fspecial():h = fspecial(type)h = fspecial(type,para)根据函数原型对fspecial函数作个说明,fspecial是用来生成滤波器(也叫...h就是生成的滤波器。imfilter():用法:B = ...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 363
精华内容 145
关键字:

matlab函数生成的图像

matlab 订阅