美文网首页
bmp图片任意矩形区域像素提取算法

bmp图片任意矩形区域像素提取算法

作者: tylerzhang | 来源:发表于2018-04-09 14:55 被阅读23次

bmp图片裁剪大部分都是在水平方向上指定一个矩形区域,然后进行裁剪。有时候我们的需求是在一个bmp图片ABCD内部,指定一个基准点p0(x0,y0)(裁剪区域的中心点),在水平方向上任意旋转θ角度任意一块长度为l,宽度为w的矩形区域A'B'C'D',这是就需要进行像素提取,核心是坐标系的转换。

基本思路:

1.遍历裁剪区域A'B'C'D'中的每一个像素点p'(i,j)。

2.将A'B'C'D'区域中的每一个点通过坐标转换,转换到原始bmp图片上p''(u,v),并获取对应点的像素并保存至buffer中。

3.将buffer中保存的像素信息重新生成一张新的bmp图片,裁剪完成。

如下图所示:


任意矩形区域像素提取算法.PNG

坐标转换核心公式:

for(i=0;i<l;i++)
{
   for(j=0;j<w;j++)
   {
          u= x0 + (i-l/2)*sinθ - (j+w/2)*cosθ;
          v= y0 + (i-l/2)*cosθ - (j+w/2)*sinθ;
    }
}

//p'(i,j)表示需要提取像素子区域坐标系下任意一点。p''(u,v)表示将裁减区域内部坐标系转换到原始bmp图像上的坐标。

//p0(x0,y0)表示指定的裁剪基准点坐标,也就是裁剪矩形区域的中心点在原始bmp图像上的坐标。

//l表示需要裁剪矩形像素区域的宽度,w表示需要裁剪矩形区域的高度。

//θ表示需要裁剪矩形区域在水平方向上旋转的角度。

相关文章

  • bmp图片任意矩形区域像素提取算法

    bmp图片裁剪大部分都是在水平方向上指定一个矩形区域,然后进行裁剪。有时候我们的需求是在一个bmp图片ABCD内部...

  • 多媒体编程

    一、图片处理 BMP无损图片(无压缩)占用内存的大小 = 图片总像素 * 每个像素占用的大小 每个像素占用的大小 ...

  • java将图片(jpg/bmp/png)转16位bmp(RBG5

    我们无需将图片(如bmp)的像素信息提取出来后进行左移右移操作,直接使用BufferedImage的构造方法来进行...

  • halcon多层感知器MLP的使用

    一、用于图像像素灰度级分类 step1:准备数据在图像选择区域作为训练集,可以是矩形,也可以是任意形状的区域。 s...

  • 判断矩形是否相交以及求出相交的区域(含Demo)

    设计一个算法,确定两个矩形是否相交(即有重叠区域) 如果两个矩形相交,设计一个算法,画出相交的区域矩形 拖动矩形,...

  • iOS 矩形识别

    需求:识别图片中的矩形框,标出矩形区域,并可以裁剪矩形区域 实现方式: 1、使用CIDetector类识别矩形区域...

  • 图片简单操作

    图片大小 图片在计算机中的大小 图片的总大小 = 图片的总像素 * 每个像素占用的大小 位图 bmp格式的图片是无...

  • Android图片处理(入门)

    概述 图片格式概述: BMP:高质量绘图 保证原图质量,用于相机等BMP格式图片是有一个一个的像素点组成,每一个...

  • Android图片之处理圆形圆角

    概述 图片格式概述: BMP:高质量绘图 保证原图质量,用于相机等BMP格式图片是有一个一个的像素点组成,每一个...

  • 【arduino实验记录23】OLED显示屏

    128*64像素的.bmp图像

网友评论

      本文标题:bmp图片任意矩形区域像素提取算法

      本文链接:https://www.haomeiwen.com/subject/jprihftx.html