Tag: 切片

如何将图像切片/切成碎片

所以我有一个函数接收OpenCV图像并将其转换为灰度图像。 void UseLSD(IplImage* destination) { IplImage *destinationForGS = cvCreateImage(cvSize(destination->width, destination->height),IPL_DEPTH_8U,1); cvCvtColor(destination,destinationForGS,CV_RGB2GRAY); } 现在如何将图像切割成大小为10×10像素的图像并迭代真实? (宽度和高度可能不会在10上划分,但是如果会有一些损失(例如从每个图像1 * h到9 * h + 9 * h像素的损失),对我来说就没问题了。)BTW可以输出10个中的一个* 10张图像到屏幕上。 请。

用于从RGB值数组中切割平面(就地)的算法

我有一个平坦的字节RGB值数组,它们是R1 G1 B1 R2 G2 B2 R3 G3 B3 … Rn Gn Bn 。 所以我的数据看起来像: char imageData[WIDTH * HEIGHT * 3]; 但我想将WIDTH * HEIGHT数组传递给现有的C库,该C库需要这个数据的单个平面。 这将只是R值(或只是G,或只是B)的序列。 分配新数组并复制数据(duh)很容易。 但是图像非常大。 如果它不是一个C库,而是采用某种迭代接口来精细化“切片”遍历,那就太棒了。 但是我无法编辑我正在调用的代码……它需要一个指向顺序内存块的普通旧指针。 但是我有对这个数组的写访问权限。 创建一个将其分类为彩色平面的例程是可行的。 我还需要一个可以反转的反向转换,但根据定义,将它分类为平面的相同方法可以应用于取消它。 我能够(到位)将这个arrays转换为R1 R2 R3 … Rn G1 G2 G3 … Gn B1 B2 B3 … Bn然后再返回? 任何非天真的算法?

使用涂料矢量来访问多维数组的任意轴向切片?

我正在构建一组函数来处理多维数组数据结构 ,我希望能够定义数组的任意切片 ,这样我就可以实现两个任意矩阵(又名Tensors或nd数组 )的广义内积。 我读过的一篇APL论文(我老实说找不到哪篇 – 我读过这么多篇幅)定义了左边矩阵X上的矩阵乘积,其尺寸为A;B;C;D;E;F和右矩阵Y尺寸G;H;I;J;K其中F==G as Z <- X +.× Y Z[A;B;C;D;E;H;I;J;K] <- +/ X[A;B;C;D;E;*] × Y[*;H;I;J;K] 其中+/是和的和 ,并且×将逐个元素应用于两个相同长度的向量。 所以我需要左边的“行”切片和右边的“列”切片。 我当然可以使用转置,然后使用“行”切片来模拟“列”切片,但我宁愿更优雅地做。 维基百科关于切片的文章引出了关于涂料载体的存根,这似乎是我正在寻找的奇迹治疗方法,但是没有太多可以继续下去。 如何使用涂料矢量来实现任意切片? (很久以后我注意到Stride的一个数组有一些细节。)