文章标题
来源:互联网 发布:C语言下列叙述错误的是 编辑:程序博客网 时间:2024/06/08 12:06
% generate posebox from a given folder% input: image directory% input: pose estimation result% output: posebox of all the images in the directoryimg_dir = '/data/data/Market-1501-v15.09.15/bounding_box_train/';img_files = dir([img_dir '*.jpg']);[NUM,TXT,RAW]=xlsread('/home/huangyj/pre/PoseBox-Reid/DataMaker/re-id_pose.xls');img_name = TXT(2:end, 1);pose = (NUM+1);clear NUM TXT RAWwrite_dir = '/data/data/Market-1501-v15.09.15/';mkdir(write_dir);for n = 1:length(img_name) n img = imread([img_dir img_name{n}]); img = imresize(img, 2.8750); head = [pose(n, 1), pose(n, 2)]; neck = [pose(n, 4), pose(n, 5)]; d = sqrt(sum((head-neck).*(head-neck))); pthead = calheadneck(head, neck, ceil(d/3*2)); shouder1 = [pose(n, 7), pose(n, 8)]; shouder2 = [pose(n, 16), pose(n, 17)]; [shoulderL, shoulderDrawL, shoulderR, shoulderDrawR] = calDraw(shouder1, shouder2, [-5, -5], [5, -5]); hip1 = [pose(n, 25), pose(n, 26)]; hip2 = [pose(n, 34), pose(n, 35)]; [hipL, hipDrawL, hipR, hipDrawR] = calDraw(hip1, hip2, [-10, 10], [10, 0]); confidence = pose(n, 9)+pose(n, 18)+pose(n, 27)+pose(n, 36)-4; knee1 = pose(n, 28:29); knee2 = pose(n, 37:38); if knee1(1) < knee2(1) kneeL = knee1; kneeR = knee2; else kneeL = knee2; kneeR = knee1; end if confidence < 0.8 kneeL = kneeL - ceil(rand(1, 2).*4); kneeR = kneeR - ceil(rand(1, 2).*4); hipL = hipL + ceil(rand(1, 2).*4); hipR = hipR + ceil(rand(1, 2).*4); end ptL = calRectKnee(kneeL, hipL, 15); ptR = calRectKnee(kneeR, hipR, 15); feet1 = pose(n, 31:32); feet2 = pose(n, 40:41); if feet1(1) < feet2(1) feetL = feet1; feetR = feet2; else feetL = feet2; feetR = feet1; end ptFeetL = calRectKnee(feetL, kneeL, 15); ptFeetR = calRectKnee(feetR, kneeR, 15); elbow1 = pose(n, 10:11); elbow2 = pose(n, 19:20); if elbow1(1) < elbow2(1) elbowL = elbow1; elbowR = elbow2; else elbowL = elbow2; elbowR = elbow1; end if confidence < 0.8 elbowL = elbowL - ceil(rand(1, 2).*4); elbowR = elbowR - ceil(rand(1, 2).*4); end ptelbowL = calRectKnee(elbowL, shoulderL, 10); ptelbowR = calRectKnee(elbowR, shoulderR, 10); wrist1 = pose(n, 13:14); wrist2 = pose(n, 22:23); if wrist1(1) < wrist2(1) wristL = wrist1; wristR = wrist2; else wristL = wrist2; wristR = wrist1; end ptwristL = calRectKnee(wristL, elbowL, 10); ptwristR = calRectKnee(wristR, elbowR, 10); img = double(img)./255; headH = 0;% w = headH; h = headH;% p1 = [pthead{1}(1), pthead{1}(2); pthead{2}(1), pthead{2}(2);...% pthead{3}(1), pthead{3}(2); pthead{4}(1), pthead{4}(2)];% p2 = [1, 1; w, 1; w, h; 1, h];% subimg0 = projection(p1, p2, img, w, h); w = 40; h = 56; p1 = [ptelbowL{1}(1), ptelbowL{1}(2); ptelbowL{2}(1), ptelbowL{2}(2);... ptelbowL{4}(1), ptelbowL{4}(2); ptelbowL{3}(1), ptelbowL{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg6 = projection(p1, p2, img, w, h); w = 40; h = 56; p1 = [ptelbowR{1}(1), ptelbowR{1}(2); ptelbowR{2}(1), ptelbowR{2}(2);... ptelbowR{4}(1), ptelbowR{4}(2); ptelbowR{3}(1), ptelbowR{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg7 = projection(p1, p2, img, w, h); w = 40; h = 56; p1 = [ptwristL{1}(1), ptwristL{1}(2); ptwristL{2}(1), ptwristL{2}(2);... ptwristL{4}(1), ptwristL{4}(2); ptwristL{3}(1), ptwristL{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg8 = projection(p1, p2, img, w, h); w = 40; h = 56; p1 = [ptwristR{1}(1), ptwristR{1}(2); ptwristR{2}(1), ptwristR{2}(2);... ptwristR{4}(1), ptwristR{4}(2); ptwristR{3}(1), ptwristR{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg9 = projection(p1, p2, img, w, h); w = 144; h = 112; p1 = [shoulderDrawL(1), shoulderDrawL(2); shoulderDrawR(1), shoulderDrawR(2);... hipDrawR(1), hipDrawR(2); hipDrawL(1), hipDrawL(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg1 = projection(p1, p2, img, w, h); w = 112; h = 56; p1 = [ptL{1}(1), ptL{1}(2); ptL{2}(1), ptL{2}(2);... ptL{4}(1), ptL{4}(2); ptL{3}(1), ptL{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg2 = projection(p1, p2, img, w, h); w = 112; h = 56; p1 = [ptR{1}(1), ptR{1}(2); ptR{2}(1), ptR{2}(2);... ptR{4}(1), ptR{4}(2); ptR{3}(1), ptR{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg3 = projection(p1, p2, img, w, h); w = 112; h = 56; p1 = [ptFeetL{1}(1), ptFeetL{1}(2); ptFeetL{2}(1), ptFeetL{2}(2);... ptFeetL{4}(1), ptFeetL{4}(2); ptFeetL{3}(1), ptFeetL{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg4 = projection(p1, p2, img, w, h); w = 112; h = 56; p1 = [ptFeetR{1}(1), ptFeetR{1}(2); ptFeetR{2}(1), ptFeetR{2}(2);... ptFeetR{4}(1), ptFeetR{4}(2); ptFeetR{3}(1), ptFeetR{3}(2)]; p2 = [1, 1; w, 1; w, h; 1, h]; subimg5 = projection(p1, p2, img, w, h); posebox = zeros(224, 224, 3);% brick_img(1:headH, 112-headH/2:112+headH/2-1, :) = subimg0; posebox(1:112, 41:41+143, :) = subimg1; posebox(113:113+56-1, 1:112, :) = subimg2; posebox(113:113+56-1, 113:224, :) = subimg3; posebox(113+56:end, 1:112, :) = subimg4; posebox(113+56:end, 113:224, :) = subimg5; posebox(1:56, 1:40, :) = subimg6; posebox(57:112, 1:40, :) = subimg8; posebox(1:56, end-40+1:end, :) = subimg7; posebox(57:112, end-40+1:end, :) = subimg9; write_path = [write_dir img_name{n}]; imwrite(posebox, write_path); %%%%%%% uncomment the following codes will visualize the posebox %%%%%%%%%%% imshow(img);% hold on;% for k = 1:14% plot(pose(n, (k-1)*3+1), pose(n, (k-1)*3+2), 'Marker', 'x', 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g', 'MarkerSize', 8);% hold on;% end % % line([shoulderDrawL(1), shoulderDrawR(1)], [shoulderDrawL(2), shoulderDrawR(2)], 'Color', 'g');% line([hipDrawL(1), hipDrawR(1)], [hipDrawL(2), hipDrawR(2)], 'Color', 'g');% line([shoulderDrawL(1), hipDrawL(1)], [shoulderDrawL(2), hipDrawL(2)], 'Color', 'g');% line([shoulderDrawR(1), hipDrawR(1)], [shoulderDrawR(2), hipDrawR(2)], 'Color', 'g'); % % drawRect(pthead);% drawRect(ptL);% drawRect(ptR);% % drawRect(ptFeetL);% drawRect(ptFeetR); % % % drawRect(ptelbowL);% drawRect(ptelbowR);% % drawRect(ptwristL);% drawRect(ptwristR);% figure;% imshow(posebox);% close all;end
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- NVIDIA TK1 学习笔记(6):安装无线网卡
- 算法与数据结构基础(二)排序基础2.插入排序
- hdu5459
- 用mycat做读写分离:基于 MySQL主从复制
- 开篇
- 文章标题
- JS修改属性的默认特性(属性描述符)
- 对设计模式的理解
- C# mvc 中把带 html标签的字符 当作 html标签 显示到页面
- struts2 文字过滤拦截器
- 深入浅出妙用 Javascript 中 apply、call、bind
- 关于最后
- LeetCode113. Path Sum II
- 通过OllyDbg调试windows窗口程序