利用向量化对图像做快速赋值
来源:互联网 发布:非农数据和黄金价格 编辑:程序博客网 时间:2024/06/08 03:57
问题背景:
假如我们有一张图,像素值全部取自一个颜色集合C (有点像是png的压缩原理) ,目的是将其分辨率降低为原来的1/2,而且降低分辨率之后的图像像素一定还是都属于原来的颜色集合C,假如直接用imresize的话,就会出现压缩之后像素值有损失的问题,导致会出现不在颜色集合C的像素,所以需要自己写一个不破坏像素信息的imresize函数。
解决思路:
1. 一个最简单的方法就是声明一个原图一半大小的矩阵,然后为其中的每个像素赋值,赋值的方法也很简单,就是dst_pixel(x, y) = src_pixel(2*x, 2*y)
但是这么做是需要用到for循环的,效率非常低,所以我们需要一个效率更高的算法
2. 向量化的赋值方法:
假定原图分辨率为2*h×2*w,那么降低分辨率之后为h*w,
我们不用im(h,w,c) = value这样的思路赋值,我们用im(index) = value的思路赋值就可以实现向量化,方法如下
[hh, ww] = meshgrid(1 : h, 1 : w);
hh = hh(:);
ww = ww(:);
srcwh = 2 * hh;
srcww = 2 * ww;
src_index = [srchh + (srcww - 1) * 2 * h, ...
srchh + (srcww - 1) * h + 4 * h * w, ...
srchh + (srcww - 1) * h + 8 * h * w];
dst_index = [hh + (ww - 1) * h, ...
hh + (ww - 1) * h + h * w, ...
hh + (ww - 1) * h + h * w * 2];
dst_im(dst_index) = src_im(src_index);
dst_im就是降低分辨率之后的图像
用上面的方法,就可以免去for循环了,非常快
- 利用向量化对图像做快速赋值
- 一种快速的无监督的向量化方法做地标识别
- 基于IF-IDF对文本向量化
- 用MATLAB对图像进行量化处理
- 利用RenderScript对图像快速高斯模糊(一)
- 向量化
- opencv读入图像、灰度化、归一化、向量化
- matlab快速入门6——向量化
- 利用kmeans聚类进行颜色量化压缩图像
- 对 ASP.NET 图像的颜色量化(quantization)进行优化
- 快速利用opencv合并图像
- 利用反射快速给Model实体赋值
- 利用反射快速给Model实体赋值
- 利用反射快速给Model实体赋值
- 利用OpenCV对图像旋转
- Mahout文本向量化
- R向量化运算
- 循环向量化
- Android开发中versionCode和versionName解析
- 《机器学习实战》学习笔记:利用Adaboost元算法提高分类性能
- android一些常用基础UI控件(比较适合给新手参考)
- 测试基础知识
- 用MJRefresh类库实现下拉刷新
- 利用向量化对图像做快速赋值
- phonegap+激光推送做ios的消息推送
- poj 1001
- 获得状态栏高度的方式
- IO流与异常
- stm32 IAR printf函数重定义
- JDBC的批处理操作三种方式
- UIViewController的生命周期及iOS程序执行顺序
- 黑马程序员---Java数据结构