qq_37590098
2018-03-23 03:30
采纳率: 33.3%
浏览 3.1k

用matlab实现,如何对一幅图片不同像素点进行多条曲线拟合?相同的像素点用一条曲线拟合。如图。

用matlab实现,如何对一幅图片不同像素点进行多条曲线拟合?相同的像素点用一条曲线拟合。如图。图片说明其中不同颜色代表不同像素点。把它拟合成图二所示的。图二图片说明
求代码实现。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • liuyang0717 2018-03-23 10:33

    从算法方面,构造一个价值函数,然后使用聚类算法找到相同的一类点,得到点的位置信息后使用回归算法,拟合出样条曲线。

    点赞 打赏 评论
  • asdbnmcvbdfg 2018-03-25 06:52

    close all;clear;clc;
    I = imread('D:\11.jpg');
    II = im2bw(I,L); %L楼主自己调一下
    [I_h,I_w] = size(II);
    %% 选择颜色
    level = 40;
    col = [29 107 31]; %col是所要搜索的像素点的颜色,RGB坐标
    %% 搜集数据
    k = 1;
    cut = zeros(I_h,I_w,3);
    for t1 = I_w: -1 :1
    for t2 = I_h: -1 :1
    if III(t2,t1) == 0
    I(t2,t1,:) = [0 0 0]; %去坐标
    end
    xz1 = abs(I(t2,t1,1) - col(1));
    xz2 = abs(I(t2,t1,2) - col(2));
    xz3 = abs(I(t2,t1,3) - col(3));
    if (I(t2,t1) > 0) && (xz1 < level) && (xz2 < level) && (xz3 < level) %&& (xz1 > 0) && (xz2 > 0) && (xz3 > 0)
    x(k) = t1; %x,y对应col的像素点的坐标
    y(k) = t2;
    k = k + 1;
    end
    end
    end

    % 然后用找到的坐标拟合即可

    点赞 打赏 评论
  • asdbnmcvbdfg 2018-03-25 06:53

    if III(t2,t1) == 0
    I(t2,t1,:) = [0 0 0]; %去坐标
    end
    这三行删掉没用

    点赞 打赏 评论

相关推荐 更多相似问题