double类型的框架必须在0到1的范围内:MATLAB

Mehran Khan |

我有一个视频,并已在MATLAB上为其制作了Sobel蒙版。现在,我必须通过for循环读取每一帧,将Sobel蒙版应用于视频的每一帧该过程类似于:

  • 步骤1:阅读框架。
  • 第2步:使用将其转换为灰度rgb2gray
  • 步骤3:将其转换为两倍。

在这里,当我尝试在结果video.avi文件上写入框架时应用了蒙版后,出现以下错误:

“类型的框架double必须在0到1的范围内”

我的代码有什么问题?我编写的代码如下所示:

vid = VideoReader('me.mp4');
frames = read(vid);
total = get(vid, 'NumberOfFrames');
write = VideoWriter('me.avi');
open(write);
mask1 = [-1 -2 -1; 0 0 0; 1 2 1]; % Horizontal mask
mask2 = [-1 0 1; -2 0 2; -1 0 1]; %Vertical Mask
for k = 1 : 125
    image = frames(:,:,:,k);
    obj = image;
    obj1 = rgb2gray(obj);
    obj2=double(obj1);
    for row = 2 : size(obj2, 1) - 1
        for col = 2 : size(obj2, 2) - 1
            c1 = obj2(row - 1, col - 1) * mask1(1 ,1);
            c2 = obj2(row - 1, col) * mask1(1 ,2);
            c3 = obj2(row - 1, col + 1) * mask1(1 ,3);
            c4 = obj2(row, col - 1)*mask1(2, 1);
            c5 = obj2(row, col)*mask1(2, 2);
            c6 = obj2(row, col + 1)*mask1(2, 3);
            c7 = obj2(row + 1, col - 1)*mask1(3,1);
            c8 = obj2(row + 1, col)*mask1(3,2);
            c9 = obj2(row + 1, col + 1)*mask1(3,3);
            c11 = obj2(row - 1, col - 1)*mask2(1 , 1);
            c22 = obj2(row, col - 1)*mask2(2, 1);
            c33 = obj2(row + 1, col - 1)*mask2(3, 1);
            c44 = obj2(row -1, col)*mask2(1, 2);
            c55 = obj2(row, col)*mask2(2 , 2);
            c66 = obj2(row +1, col)*mask2(2 , 3);
            c77 = obj2(row - 1, col + 1)*mask2(1 , 3);
            c88 = obj2(row, col +1)*mask2(2 , 3);
            c99 = obj2(row + 1, col + 1)*mask2(3 , 3);
            result = c1 + c2 + c3 +c4 +c5+ c6+ c7+ c8 +c9;
            result2 = c11 + c22 + c33 + c44 + c55 + c66 + c77 + c88 + c99;
            %result = double(result);
            %result2 = double(result2);
            rim1(row, col) = ((result^2+result2^2) *1/2);
            rim2(row, col) = atan(result/result2);
        end
    end
    writeVideo(write, rim2); %This line has the problem with rim2 as rim2 is the frame i'm trying to write on the video file.
end
close(write);
塔索斯·帕帕斯蒂里亚努(Tasos Papastylianou)

rim2[-pi/2, pi/2]末尾具有范围,该范围与期望[0,1]范围的写入功能不兼容。[0,1]使用mat2gray函数将其转换为范围,即

writeVideo(write, mat2gray(rim2));

然后,您的代码将按预期工作(在我的计算机上确认)。

顺便说一句,这不会影响您的代码,但可能是您打算这样做im2double(A)而不是double(A)前者会生成[0,1]范围内的“适当”灰度图像,而后者只是将uint8[0,255]范围内图像转换double格式(即[0.0,255.0])。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

double类型的框架必须在0到1的范围内:MATLAB

来自分类Dev

OpenGL纹理坐标是否必须在0-1的范围内

来自分类Dev

创建属性必须在1-10(Postgres)范围内的表

来自分类Dev

索引必须在列表的范围内-C#错误

来自分类Dev

在Swift中,是否有浮点类型限制在0到1的范围内?

来自分类Dev

在Swift中,是否有浮点类型限制在0到1的范围内?

来自分类Dev

令牌必须是短期令牌,并且必须在合理的时间范围内

来自分类Dev

如何使用模板对0到1范围内的数字进行归一化?

来自分类Dev

纹理值限制在0-1范围内?

来自分类Dev

每个Apple ID的应用内购买商品ID是否必须在全球范围内唯一(不仅每个应用本地)?

来自分类Dev

我的SQL必须在3,00和4,00价格范围内搜索数据库中的文章,但是代码不起作用(已关闭)

来自分类Dev

SQL-连接表,其中第一个表的值必须在第二个表中指定的范围内

来自分类Dev

IndexError:尺寸超出范围(预计在[-1,0]范围内,但得到1)

来自分类Dev

IndexError:尺寸超出范围-PyTorch尺寸预计在[-1,0]范围内,但得到1

来自分类Dev

在特定范围内矢量的MATLAB绘图

来自分类Dev

在范围内找不到类型“ GADRequestError”

来自分类Dev

Scala - 定义范围内数字的类型

来自分类Dev

类型参数T#1不在类型变量T#2的范围内

来自分类Dev

类型参数T#1不在类型变量T#2的范围内

来自分类Dev

将数据分组到范围内

来自分类Dev

SQL分组到范围内?

来自分类Dev

如何从0到100的范围内获得5个随机数?

来自分类Dev

在Python中查找介于0到100之间的值范围内的索引

来自分类Dev

值> 0时如何获得最小值到范围内?

来自分类Dev

ORA-01849:小时必须在1到12之间

来自分类Dev

如何获得1到7范围内的两个数字的所有组合?

来自分类Dev

将自然范围之外的角度(对于theta:0到180度)转换为该范围内的等效角度

来自分类Dev

将自然范围之外的角度(对于theta:0到180度)转换为该范围内的等效角度

来自分类Dev

实体框架:检索不在日期范围内的行

Related 相关文章

  1. 1

    double类型的框架必须在0到1的范围内:MATLAB

  2. 2

    OpenGL纹理坐标是否必须在0-1的范围内

  3. 3

    创建属性必须在1-10(Postgres)范围内的表

  4. 4

    索引必须在列表的范围内-C#错误

  5. 5

    在Swift中,是否有浮点类型限制在0到1的范围内?

  6. 6

    在Swift中,是否有浮点类型限制在0到1的范围内?

  7. 7

    令牌必须是短期令牌,并且必须在合理的时间范围内

  8. 8

    如何使用模板对0到1范围内的数字进行归一化?

  9. 9

    纹理值限制在0-1范围内?

  10. 10

    每个Apple ID的应用内购买商品ID是否必须在全球范围内唯一(不仅每个应用本地)?

  11. 11

    我的SQL必须在3,00和4,00价格范围内搜索数据库中的文章,但是代码不起作用(已关闭)

  12. 12

    SQL-连接表,其中第一个表的值必须在第二个表中指定的范围内

  13. 13

    IndexError:尺寸超出范围(预计在[-1,0]范围内,但得到1)

  14. 14

    IndexError:尺寸超出范围-PyTorch尺寸预计在[-1,0]范围内,但得到1

  15. 15

    在特定范围内矢量的MATLAB绘图

  16. 16

    在范围内找不到类型“ GADRequestError”

  17. 17

    Scala - 定义范围内数字的类型

  18. 18

    类型参数T#1不在类型变量T#2的范围内

  19. 19

    类型参数T#1不在类型变量T#2的范围内

  20. 20

    将数据分组到范围内

  21. 21

    SQL分组到范围内?

  22. 22

    如何从0到100的范围内获得5个随机数?

  23. 23

    在Python中查找介于0到100之间的值范围内的索引

  24. 24

    值> 0时如何获得最小值到范围内?

  25. 25

    ORA-01849:小时必须在1到12之间

  26. 26

    如何获得1到7范围内的两个数字的所有组合?

  27. 27

    将自然范围之外的角度(对于theta:0到180度)转换为该范围内的等效角度

  28. 28

    将自然范围之外的角度(对于theta:0到180度)转换为该范围内的等效角度

  29. 29

    实体框架:检索不在日期范围内的行

热门标签

归档