24 回答
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
/** 函数声明 */
void detectAndDisplay( Mat frame );
/** 全局变量 */
string face_cascade_name = "haarcascade_frontalface_alt.xml";
string eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
CascadeClassifier face_cascade;
CascadeClassifier eyes_cascade;
string window_name = "Capture - Face detection";
RNG rng(12345);
/** @主函数 */
int main( int argc, const char** argv )
{
CvCapture* capture;
Mat frame;
//-- 1. 加载级联分类器文件
if( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading\n"); return -1; };
if( !eyes_cascade.load( eyes_cascade_name ) ){ printf("--(!)Error loading\n"); return -1; };
//-- 2. 打开内置摄像头视频流
capture = cvCaptureFromCAM( -1 );
if( capture )
{
while( true )
{
frame = cvQueryFrame( capture );
//-- 3. 对当前帧使用分类器进行检测
if( !frame.empty() )
{ detectAndDisplay( frame ); }
else
{ printf(" --(!) No captured frame -- Break!"); break; }
int c = waitKey(10);
if( (char)c == 'c' ) { break; }
}
}
return 0;
}
/** @函数 detectAndDisplay */
void detectAndDisplay( Mat frame )
{
std::vector<Rect> faces;
Mat frame_gray;
cvtColor( frame, frame_gray, CV_BGR2GRAY );
equalizeHist( frame_gray, frame_gray );
//-- 多尺寸检测人脸
face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) );
for( int i = 0; i < faces.size(); i++ )
{
Point center( faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5 );
ellipse( frame, center, Size( faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 );
Mat faceROI = frame_gray( faces[i] );
std::vector<Rect> eyes;
//-- 在每张人脸上检测双眼
eyes_cascade.detectMultiScale( faceROI, eyes, 1.1, 2, 0 |CV_HAAR_SCALE_IMAGE, Size(30, 30) );
for( int j = 0; j < eyes.size(); j++ )
{
Point center( faces[i].x + eyes[j].x + eyes[j].width*0.5, faces[i].y + eyes[j].y + eyes[j].height*0.5 );
int radius = cvRound( (eyes[j].width + eyes[i].height)*0.25 );
circle( frame, center, radius, Scalar( 255, 0, 0 ), 4, 8, 0 );
}
}
//-- 显示结果图像
imshow( window_name, frame );
}
haarcascade_frontalface_alt.xml 是人脸分类器, haarcascade_eye_tree_eyeglasses.xml 是人眼分类器。
其实这就是官网给出的示例代码,具体链接上面已经给出,分类器可以自己训练也可以直接用别人训练好的,仅供学习参考。
Tommy McHugh,一次几乎致命的脑部出血使他成为了具有狂热创造力的画家。图片来源:《我天才的大脑》
与之前所提到的情况不同,他仅有轻微的前额叶异常,依然具有正常的智商,记忆和语言能力也几乎没有受损。神经学家爱丽丝·弗莱厄蒂(Alice
Flaherty)认为,麦克休在发生出血后,淤血集中在左脑的某个区域,抑制了两个关键脑区的功能,最终引发了他的创造力大爆炸。这两个脑区分别是负责思考决策的前额叶,以及控制语言的颞叶。麦克休发生出血的区域正好在这两个脑区之间,于是形成了一种新的平衡,这种万里挑一的运气,说是“奇迹”也丝毫不为过。他的创作已经持续了六年有余,狂热的创造欲望也许还会持续下去。
还有一个大众都知道的例子,就是梵高。
梵高的《星夜》好在哪里?https://www.zhihu.com/question/21660603
匿名用户
亦何欢、虫虫 、余北溟 等 3271 人赞同了该回答
说来惭愧,真正意识到梵高的伟大是在自己得了精神疾病以后。虽然以前去过好几个收录了梵高作品的博物馆,却没有感受到强烈的冲击。直到后来得了严重的抑郁症,每天需要吃药才有感触。有一个夏天的晚上吃完某种安定情绪的药物后产生了幻觉,当我看到窗外稀疏的星星时,星星就像《星空》中的一样旋转跳跃起来,甚至涌向我。第一时间我想到了梵高,感动得留下了眼泪,由于吃药我已经很久没有哭了。这种感觉不是悲伤也不是孤独,而是理解。世界上形形色色的人当中总有一些孤独的灵魂,而孤独的灵魂也可以有强烈的共鸣,虽然我们不是一个时代的人。
[h1]知乎这一段回答,说出了绘画艺术的本质。绘画就是人类灵魂内容、意识思想表达一种很好的方式。[/h1]追溯到4万年前法国岩洞的智人岩画的内容,与4万年以后梵高、汤米·麦克休Tommy McHugh绘画表达的情感内容,梵高、汤米·麦克休对于色彩的运用与4万年前的智人有基本一致的要素。
肖维岩洞中共有1000多幅壁画,可追溯到3.6万年前的石器时代,它们被认为是欧洲最早的人类文化形式。(网页截图)
这就可以下结论,绘画表达的人类意识内容,首先是跨越时间与空间。
梵高是在精神病发作以后,才创作了最伟大的作品。
汤米·麦克休Tommy McHugh是大脑严重创伤以后,没有学过绘画的他,突然具有狂热创造力,他不但充满了创作力,而且无法停止手中的创作。他渴望把所有的空间都填满自己的作品,这已经成了一种强迫症。他画满了家里所有的地板、墙砖、天花板,他疯狂的在所有能够绘画的地方创作,不仅仅用画笔和颜料,甚至用蜡油和烟火。
这不是告知大众,绘画的天赋不是仅仅通过学习就可以得到。绘画,是人类视觉系统对于三维空间,时间的维度,光谱光波维度五个维度综合感知。
在大脑发生病变引发神经疾病,大脑严重损伤的情况下,按照牛顿经典世界脑科学理论,人的视觉系统受到了严重损害,人类应该不再具有正常的三维空间、色彩光波、时间运动的感知能力,而且大多数情况下,经典世界的脑科学是正确的,现在大脑受到严重损害丧失正常视觉功能的情况,属于绝大多数。
但是汤米·麦克休Tommy McHugh绘画天赋是脑损伤以后才具有的,属于后天学者症候群。
后天学者症候群(Savant-Syndrome)是指有认知障碍,但在某一方面,如对某种艺术或学术,却有超乎常人的能力的人。自闭患者中有10%是学者症候群(故称自闭学者,Autistic savant),大脑损伤患者中则约1/2000的机率是。(50%
自闭症患者, 50%大脑损伤患者)。
他们的IQ大部分低于70,但在一些特殊测试中却远胜于常人,故俗称为白痴天才(Idiot Savant)。他们的天赋有多种不同的形式,有演奏乐器、绘画、记忆、计算及日历运算能力。美国电影《雨人》中的“雨人”就是一个典型的学者症候群,他对数字的计算能力和记忆力非常惊人。
后天性学者症候群指儿童或成年人在左脑受损后,突然间发展出的学者症候群患者特殊才能。学者症候群指个人存在严重的智力障碍、自闭症或其他心理疾病,却拥有与其障碍全然相对的、不协调且惊人的某种能力。后天性学者症候群患者一般头部曾受创伤,之后出现超凡的数学、音乐或艺术才能。
传统的脑科学,把此现象归于大脑的可塑性,是没有说服力的。