从二进制到笛卡尔的图像重复

lg22woo

我想获取一个RGB图像,找到图像中白色的点,并获取图像中这些点的笛卡尔坐标。我已经完成了大部分工作,但是当我尝试绘制笛卡尔坐标时,会得到一个垂直平铺的图像(即应该看到的5个重叠副本)。有人知道是什么原因造成的吗?

起始图片最终影像

代码:(JPG格式为2448 x x3264 x 3 uint8)

I = imread('IMG_0245.JPG');
imshow(I); % display unaltered image

% Convert image to grayscale
I = rgb2gray(I); 
% Convert image to binary (black/white)
I = im2bw(I, 0.9); 
% Generate cartesian coordinates of image
imageSize = size(I);
[x, y] = meshgrid( 1:imageSize(1), 1:imageSize(2) );
PerspectiveImage = [x(:), y(:), I(:)];

% Get indices of white points only
whiteIndices = find(PerspectiveImage(:,3));
figure; plot( PerspectiveImage(whiteIndices, 1), PerspectiveImage(whiteIndices, 2),'.');
% Flip vertically to correct indexing vs. plotting issue
axis ij
雷瑞恩

很简单。您是在声明meshgrid错误。它应该是:

[x, y] = meshgrid( 1:imageSize(2), 1:imageSize(1) );

第一个参数表示2D网格水平范围,因此您要使它随您拥有的列数而变化。同样,第二个参数表示2D网格垂直范围,因此您要尽可能多地使用它。

我必须对您的某些图像进行预处理才能获得良好的效果,因为原始图像的图像周围有大的白色边框。我必须通过删除所有纯白色像素来删除此边框。我还直接从StackOverflow中读取了图像:

I = imread('http://s7.postimg.org/ovb53w4ff/Track_example.jpg');
mask = all(I == 255, 3);
I = bsxfun(@times, I, uint8(~mask));

这是经过预处理后得到的图像:

在此处输入图片说明

一旦执行此操作并更改您的meshgrid电话,就会收到以下消息:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

二进制到文本解密

来自分类Dev

二进制到DNA编码

来自分类Dev

ASCII到二进制功能

来自分类Dev

ASCII到二进制转换?

来自分类Dev

从二进制图像中查找坐标并将其投影到原始图像

来自分类Dev

十进制到二进制:二进制补码,更好的否定表达

来自分类Dev

二进制到字符串/字符串到二进制

来自分类Dev

ASCII到二进制和二进制到ASCII转换工具?

来自分类Dev

opencv二进制数据jpg图像到cv :: Mat

来自分类Dev

显示从db到角局部视图的二进制图像

来自分类Dev

如何将白色像素从二进制重叠到原始图像上?

来自分类Dev

opencv二进制数据jpg图像到cv :: Mat

来自分类Dev

Swift中的二进制到十六进制

来自分类Dev

十进制到二进制Clojure

来自分类Dev

QBASIC十进制到二进制转换

来自分类Dev

C ++二进制到十进制

来自分类Dev

C ++二进制到十进制?

来自分类Dev

二进制到十进制-Prolog

来自分类Dev

递归二进制到十进制

来自分类Dev

十进制到二进制python算法

来自分类Dev

十进制到二进制Clojure

来自分类Dev

十进制到二进制转换C ++

来自分类Dev

二进制到十进制

来自分类Dev

C ++二进制到十进制?

来自分类Dev

递归二进制到十进制

来自分类Dev

十进制到二进制转换错误

来自分类Dev

C ++中的二进制到十进制

来自分类Dev

二进制到十进制(数量巨大)

来自分类Dev

Python二进制到多十六进制