官术网_书友最值得收藏!

Time for action – repainting two areas in a color image

In this example, we will try to set the values of the pixels in the top-left corner of our image to {R, G, B} = {128, 128, 128} and the values of the pixels in the bottom-right corner to {R, G, B} = {255, 0, 0}. To see the difference, we will try to accomplish our goal using indexing. Let's start:

  1. First off, we load our image and keep a copy:
    >> img_color = imread('my_image_color.bmp');
    >> img_color_orig = img_color;
  2. Then, we will try to set our top-left corner to the specified values:
    >> img_color(1:50,1:50,:) = 128;
  3. Now, if we want to do the same for the bottom-right corner, we should modify our approach. Not all color channels should be set to the same value, thus each color channel must be changed separately:
    >> img_color(end-49:end,end-49:end,1) = 255;
    >> img_color(end-49:end,end-49:end,2) = 0;
    >> img_color(end-49:end,end-49:end,3) = 0;
  4. Finally, we will show our results:
    >> subplot(1,2,1),imshow(img_color_orig);title('Original Image')
    >> subplot(1,2,2),imshow(img_color);title('Altered Image')

What just happened?

We just managed to play with the colors of a color image. We used the indexing in exactly the same way you already knew, to turn an area to gray (with all color channels set to 128) and then we repeated the process for each color channel in another area to set its pixels to red. A useful observation is that three identical values in all color channels denote a shade of gray. This fact is rather intuitive, as in Chapter 1, Basic Image Manipulations, we saw that imtool represented the pixels of grayscale images as triplets of identical values. The process must be slightly altered when we want a color other than gray. This is why, in our example, we changed the values in each channel separately.

主站蜘蛛池模板: 永德县| 灵寿县| 铁岭县| 赣榆县| 宜州市| 河东区| 休宁县| 会泽县| 昌吉市| 临漳县| 绥化市| 连平县| 如皋市| 鄂托克旗| 通河县| 新乡市| 沅江市| 梁平县| 商水县| 新乡市| 中宁县| 新津县| 肇东市| 同德县| 安溪县| 洱源县| 仁化县| 江北区| 鸡西市| 民丰县| 四平市| 和政县| 蛟河市| 肥城市| 大城县| 云安县| 晋州市| 鹤山市| 论坛| 夏津县| 北海市|