rdimage.m
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:3k
源码类别:

matlab例程

开发平台:

Matlab

  1. function [datatx,h,w] = rdimage(filename,PictureComp)
  2. %RDIMAGE Reads a grey scale bmp file, suitable for cofdm transmission
  3. % datatx = rdimage(filename,PicutreComp)
  4. % filename is the filename of the bmp file to load.
  5. %
  6. % PictureComp : Picture intensity compression. Fraction to 
  7. % compress the intensity of the image by. This is
  8. % compresses the images so whites are darker and black
  9. % is lighter. This is to modify the mapping of the final
  10. % transmission mapping when using 256PSK. It increases 
  11. % the gap between black and white, to help prevent
  12. % wrap around of black to white, in a noisy channel.
  13. % Note : This is an optional parameter with a default
  14. % setting of 1, giving no compression.
  15. %
  16. % datatx : 8bit words representing the intensity of each pixel.
  17. % The output data is in a byte serial format, in a single row.
  18. %
  19. % h : height of image in pixels
  20. % w : width of the image in pixels
  21. %================================
  22. % Used functions:
  23. % bmpread.m
  24. %=====================
  25. % Modified:
  26. % 31/7/97 8:20am rdimage.m
  27. % Started work on the function
  28. %
  29. % 31/7/97 12:00pm rdimage.
  30. % Fixed a bug with the ordering of the bits. The conversion
  31. % to base 4,2,or 1 was causing the image to be incorrect.
  32. % It had repetitions of the picture, each successively getting
  33. % smaller, in an binary tree type arrangment. This was due
  34. % to the msb => lsb being placed on separate symbols, but
  35. % being recreated assumming they were side by side on the same 
  36. % symbol. The effect can be recreated by rotating leftover, and
  37. % FileData using the ' operation.
  38. % rdfile.m appears to work now.
  39. %
  40. % 31/7/97 3:00pm rdimage.m
  41. % The check for if the map and gray colors are the same keeps
  42. % on having wierd errors, so I commented them out.
  43. %
  44. % 3/8/97 10:30am rdimage.m
  45. % Added the PictureComp parameter to allow for varying the 
  46. % mapping to help prevent roll over of black to white. Also added
  47. % data averaging allowing duplicate data to be sent to reduce the
  48. % error rate.
  49. %
  50. % 12/8/97 7:30pm rdimage.m
  51. % Removed the DataAvg parameter as this is now done by the transmit 
  52. % function. Also removed the number base conversion, and the formatting
  53. % of the data into symbols. All these are now done by the transmit routine.
  54. [x,map] = bmpread(filename);
  55. x=x-1; %Change from 1-256 to 0-255;
  56. if nargin == 2,
  57. %x=round((x/PictureComp)+(PictureComp-1)*128);
  58. x = round((x-128)/PictureComp+128);
  59. end
  60. %if map ~= gray,
  61. % error('The bmp to be loaded is not a gray scale image');
  62. %end
  63. h = size(x,1);
  64. w = size(x,2);
  65. datatx = reshape(x',1,h*w); %Put the data in a serial byte format