資源簡介
利用opencv庫對頭發圖片進行顏色渲染,實現染發效果。 完整的源碼工程文件,可直接編譯運行。
代碼片段和文件信息
//?OpenCV?includes
#include?
#include?
#include?
#include?
int?main(int?argc?char?**argv)
{
if?(argc?5)
{
std::cout?<“Usage:?“?< std::cout?<“Ex:?“?< return?-1;
}
uchar?r?=?atoi(argv[2]);
uchar?g?=?atoi(argv[3]);
uchar?b?=?atoi(argv[4]);
cv::Mat?hairMat?=?cv::imread(argv[1]?-1);
cv::Mat?hairBak?=?hairMat.clone();
int?size?=?hairMat.cols*hairMat.rows?*?3?/?2;
cv::Mat?colorMat(4?4?CV_8UC3);
for?(int?i?=?0;?i {
for?(int?j?=?0;?j {
cv::Vec3b&?c?=?colorMat.at(i?j);
c[2]?=?r;
c[1]?=?g;
c[0]?=?b;
}
}
cv::Mat?colorYuvMat;
colorYuvMat.release();
cv::cvtColor(colorMat?colorYuvMat?CV_BGR2YUV_I420);
uchar?u?=?colorYuvMat.data[colorMat.cols*colorMat.rows];
uchar?v?=?colorYuvMat.data[colorMat.cols*colorMat.rows?*?5?/?4];
int?posu?=?hairMat.cols*hairMat.rows;
int?posv?=?hairMat.cols*hairMat.rows?*?5?/?4;
cv::Mat?hairYuvMat;
cv::cvtColor(hairMat?hairYuvMat?CV_BGRA2YUV_I420);
for?(int?i?=?0;?i {
hairYuvMat.data[posu?+?i]?=?u;
hairYuvMat.data[posv?+?i]?=?v;
}
cv::cvtColor(hairYuvMat?hairMat?CV_YUV2BGRA_I420);
//還原原圖的透明度效果
for?(int?i?=?0;?i {
for?(int?j?=?0;?j {
const?cv::Vec4b&?cc?=?hairBak.at(i?j);
cv::Vec4b&?c?=?hairMat.at(i?j);
c[3]?=?cc[3];
}
}
IplImage?ipl(hairMat);
cvSaveImage(“colorHair.png“?&ipl);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-01-30?15:19??ChangeHairColor\
?????目錄???????????0??2018-01-30?13:45??ChangeHairColor\.vs\
?????目錄???????????0??2018-01-30?13:45??ChangeHairColor\.vs\ChangeHairColor\
?????目錄???????????0??2018-01-30?13:45??ChangeHairColor\.vs\ChangeHairColor\v14\
?????文件???????69120??2018-01-30?15:19??ChangeHairColor\.vs\ChangeHairColor\v14\.suo
?????目錄???????????0??2018-01-30?15:17??ChangeHairColor\ChangeHairColor\
?????文件????????7715??2018-01-30?14:04??ChangeHairColor\ChangeHairColor\ChangeHairColor.vcxproj
?????文件?????????945??2018-01-30?14:04??ChangeHairColor\ChangeHairColor\ChangeHairColor.vcxproj.filters
?????文件?????????567??2018-01-30?15:17??ChangeHairColor\ChangeHairColor\ChangeHairColor.vcxproj.user
?????文件??????467857??2018-01-30?15:17??ChangeHairColor\ChangeHairColor\colorHair.png
?????目錄???????????0??2018-01-30?15:18??ChangeHairColor\ChangeHairColor\Debug\
?????文件?????????967??2018-01-30?15:18??ChangeHairColor\ChangeHairColor\Debug\ChangeHairColor.Build.CppClean.log
?????文件???????????3??2018-01-30?15:18??ChangeHairColor\ChangeHairColor\Debug\ChangeHairColor.log
?????目錄???????????0??2018-01-30?15:18??ChangeHairColor\ChangeHairColor\Debug\ChangeHairColor.tlog\
?????文件????????1714??2018-01-30?15:09??ChangeHairColor\ChangeHairColor\main.cpp
?????文件????15794176??2018-01-30?15:19??ChangeHairColor\ChangeHairColor.sdf
?????文件????????1327??2018-01-30?13:45??ChangeHairColor\ChangeHairColor.sln
?????文件??????432618??2018-01-30?14:29??ChangeHairColor\colorHair.png
?????目錄???????????0??2018-01-30?15:18??ChangeHairColor\Debug\
?????文件???????56832??2018-01-30?15:09??ChangeHairColor\Debug\ChangeHairColor.exe
?????文件??????413937??2018-01-30?15:18??ChangeHairColor\Debug\colorHair.png
?????文件????40396288??2017-02-04?12:35??ChangeHairColor\Debug\opencv_world300d.dll
?????文件??????494528??2018-01-30?14:14??ChangeHairColor\exampleHair.png
?????文件?????1784400??2017-02-04?12:34??ChangeHairColor\opencv_world300d.lib
- 上一篇:中科院虹膜數據庫
- 下一篇:Unity可視化編程插件Bolt最新版1.4.0
評論
共有 條評論