none
图片的处理问题? RRS feed

  • 问题

  • 一个人物头像图片,怎么把头像周围的底色去掉,在picture上只显示人头的轮廓,请帮帮忙,谢谢啦!!!!

    2009年8月26日 6:27

答案

  • 你好!
         有个简单的方法,但是有限制:写个循环,通过Bitmap.GetPixel获取每个点的像素颜色,如果正好等于周围的底色,就用SetPixel方法设置为其他颜色。
         如果你的任务的衣服等和底色的颜色相同,这种方法就出问题了!
    周雪峰
    2009年8月26日 8:40
    版主
  • 你好,首先建立这个图片的Graphics对象,在这个对象上再对其进行操作

    就相当于是将图片用绘图软件比如PS打开,然后再在里边处理一样,只不过那是已经发布的软件,这个需要你自己在代码中实现

    背景色一般为纯色,那么你需要知道这个颜色是什么,然后对图片的各个像素点判断去除掉
    但是并不能这样执行,因为有可能人面部也有这样的颜色,这就需要一个算法进行判断

    举个例子 比如下面这个示意图,每个数字代表一个像素点1表示这个人的轮廓和包含部分,0是背景色,但是1包含的0则是属于这个人的面部的
    那么你在对每行像素点进行判断时,需要避开1开始和1结尾这个一个区间就可以了

    0000000010000000
    0000001111100000
    0000011111110000
    0000111101111000
    0000011111110000
    0000001111100000
    0000000111000000
    0000000010000000


    不过以上仅是我个人的设想,借助一些第三方组件应该也可以实现的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月26日 6:39
    版主
  • 用gdi+重新绘画指定图片  x y度 这样可以去掉底色 不需要什么算法
    • 已标记为答案 风中客 2009年8月27日 8:20
    2009年8月26日 8:02

全部回复

  • 你好,首先建立这个图片的Graphics对象,在这个对象上再对其进行操作

    就相当于是将图片用绘图软件比如PS打开,然后再在里边处理一样,只不过那是已经发布的软件,这个需要你自己在代码中实现

    背景色一般为纯色,那么你需要知道这个颜色是什么,然后对图片的各个像素点判断去除掉
    但是并不能这样执行,因为有可能人面部也有这样的颜色,这就需要一个算法进行判断

    举个例子 比如下面这个示意图,每个数字代表一个像素点1表示这个人的轮廓和包含部分,0是背景色,但是1包含的0则是属于这个人的面部的
    那么你在对每行像素点进行判断时,需要避开1开始和1结尾这个一个区间就可以了

    0000000010000000
    0000001111100000
    0000011111110000
    0000111101111000
    0000011111110000
    0000001111100000
    0000000111000000
    0000000010000000


    不过以上仅是我个人的设想,借助一些第三方组件应该也可以实现的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月26日 6:39
    版主
  • 用gdi+重新绘画指定图片  x y度 这样可以去掉底色 不需要什么算法
    • 已标记为答案 风中客 2009年8月27日 8:20
    2009年8月26日 8:02
  • 你好!
         有个简单的方法,但是有限制:写个循环,通过Bitmap.GetPixel获取每个点的像素颜色,如果正好等于周围的底色,就用SetPixel方法设置为其他颜色。
         如果你的任务的衣服等和底色的颜色相同,这种方法就出问题了!
    周雪峰
    2009年8月26日 8:40
    版主